БлогNot. Javascript: как заставить фреймворк обрабатывать событие, если он этого не делае...

Javascript: как заставить фреймворк обрабатывать событие, если он этого не делает?

Например, библиотека chessboard.js в оригинале не обрабатывает событие click (щелчок по полю доски), а хочется.

Или же нам хочется "прицепить" к имеющемуся полю ввода в форме HTML функцию, обрабатывающую событие change, происходящее, когда текст в этом поле изменился.

Во всех случаях подойдёт следующий общий подход:

1. К странице подключена библиотека JQuery, неважно, локально или удалённо.

2. В HTML-коде есть нужные элементы, которым выставлено уникальные и (для простоты) совпадающие между собой атрибуты id и class, допустим, такие:

<div id="board" class="board"></div>

<input id="fieldValue" class="fieldValue" type="text" maxlength="2" size="3">

3. В коде Javascript - неважно, подключённом из отдельного файла или встроенном в тег <script> (но вызванном или располагающемся ниже по тексту, чем определены целевые элементы HTML), добавлены нужные "слушатели" событий, скажем, для наших примеров, такие

var element1 = document.querySelector('.board');
element1.addEventListener ("click", function(e) {
 //здесь пишем наш код, выполняемый по событию click
}, false);

var element2 = document.querySelector('.fieldValue');
element2.addEventListener ("change", function(e) {
 //здесь пишем наш код, выполняемый по событию change
},false);

Можно всё это сделать и без JQuery, но с ним получается короче и понятнее современному кодеру, который без библиотек ничего не может :)

Следует также учесть, что не все браузеры дружат со всеми событиями даже при использовании JQuery, так, если наше поле ввода не находится ни в какой форме и не имеет явно прописанных обработчиков событий в разметке, даже самый новый Internet Explorer по вводу числа и нажатию клавиши Enter в поле никакого change генерировать не будет. Можно обрабатывать IE отдельно, но я сегодня просто написал "Нажмите клавишу Enter (или Tab, если у Вас - Internet Explorer)" :)

01.02.2018, 16:26 [1855 просмотров]


теги: javascript памятка jquery ie

К этой статье пока нет комментариев, Ваш будет первым