Люди используют больше о мониторинге событий в JS, но это не что иное, как судить, поддерживает ли браузер AddEventListener и AttedEvent. Есть много способов поиска мониторинга событий в Интернете, но некоторые не очень идеальны. Следующий метод одинаково для добавления прослушивания событий, за исключением того, что некоторая операция была выполнена при отмене привязки событий, и теперь можно поддерживать использование анонимных функций, поэтому при привязке событий больше не нужно назвать функцию отдельно.
Основной код:
Кода -копия выглядит следующим образом:
/*Связанные события и рассеяние*/
var harderhash = {};
var bind = (function () {
if (window.addeventListener) {
Функция возврата (El, type, fn, capture) {
el.addeventlistener (type, function () {
fn ();
handlehash [type] = handlehash [type] || [];
handlehash [type] .push (arguments.callee);
}, захватывать);
};
} else if (window.attachevent) {
Функция возврата (El, type, fn, capture) {
el.attachevent ("on" + type, function () {
fn ();
handlehash [type] = handlehash [type] || [];
handlehash [type] .push (arguments.callee);
});
};
}
}) ();
var unbind = (function () {
if (window.addeventListener) {
возврат функции (el, type) {
if (handlehash [type]) {
var i = 0, len = handlehash [type] .length;
для (i; i <len; i += 1) {
el.removeeventlistener (type, handlehash [type] [i]);
}
};
};
} else if (window.attachevent) {
возврат функции (el, type) {
if (handlehash [type]) {
var i = 0, len = handlehash [type] .length;
для (i; i <len; i += 1) {
el.detachevent ("on" + type, handlehash [type] [i]);
}
};
};
}
}) ();
Принцип анализа:
Handlehash делает хэш -таблицу, чтобы кэшировать функцию событий. Handlehash ['name Event'] - это массив для добавления нескольких методов прослушивания событий. Когда вы расстегните, какое событие не является, переверните через массив Handlehash ['name Event'], а затем удалите его.
использовать:
Кода -копия выглядит следующим образом:
Bind (obj, 'click', function () {
Alert ('click');
});
разгибаться (obj, 'click');