Кроссбраузерные события.
Привет всем! Сегодня я хочу привести вам кроссбраузерный способ задать события. Он будет сам проверять, какой браузер, и вызывать нужный метод.
var events = {
add: function(element, tp, func) {
if(typeof addEventListener !== 'undefined') {
element.addEventListener(tp, func, false);
} else if(typeof attachEvent !== 'undefined') {
element.attachEvent('on' + tp, func);
} else {
element['on' + tp] = func;
}
},
default: function(e) {
if(typeof e.preventDefault !== 'undefined') {
e.preventDefault();
} else {
e.returnValue = false;
}
},
remove: function(element, tp, func) {
if(typeof removeEventListener !== 'undefined') {
element.removeEventListener(tp, func, false);
} else if(typeof detachEvent !== 'undefined') {
element.detachEvent('on' + tp, func);
} else {
element['on' + tp] = null;
}
}
};
Всё! Наш объект готов к работе. Использовать его очень просто.
<a href="yandex.ru" id="link">Кликни!</a>
<script>
var link = document.getElementById("link");
function myfunc(e) {
events.default(); // отменили стандартное поведение браузера
alert("Какой-то текст");
}
events.add(link, 'click', myfunc); // привязали событие
events.remove(link, 'click', myfunc); // удалили событие
</script>
Используйте этот объект в своих проектах, чтобы ваши события всегда были кроссбраузерными ;)
-
- Михаил Русаков
Комментарии (1):
мм... а можно любой пример с использованием этого скрипта самый простой
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.