Привет всем! Сегодня я хочу привести вам кроссбраузерный способ задать события . Он будет сам проверять, какой браузер, и вызывать нужный метод.

Кроссбраузерные события.

Привет всем! Сегодня я хочу привести вам кроссбраузерный способ задать события. Он будет сам проверять, какой браузер, и вызывать нужный метод.

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>

Используйте этот объект в своих проектах, чтобы ваши события всегда были кроссбраузерными ;)