Показать сообщение отдельно
  #2 (permalink)  
Старый 15.09.2012, 21:05
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

В последнем случае возбуждается исключение, это значит, что он менее производительный чем первый.

И еще, не назначайте так обработчики событий:

element.onclick

Нужно использовать специальные методы для работы с событиями (addEventListener и attachEvent). Для этого можно написать свою обертку:

<a href="#" id="link">click</a>

<script>
var $ = function(element) 
{
      if (!(this instanceof $))
            return new $(element);
  
      this.element = element;
};

$.prototype = 
{
      constructor: $,

      on: function(event, callback) 
      {
            if (typeof event !== 'string' && typeof callback !== 'function')
                  return this;
    
            if (this.element.addEventListener)
                  this.element.addEventListener(event, callback, false); 
    
            else if (this.element.attachEvent) 
            {
                  this.element.attachEvent('on' + event, function(event) 
                  {
                        callback.call(this, {
                              // ...
                        });
                  });
            }
      return this;
      }
};

$(document.getElementById('link')).on('click', function(event) {
      alert(event.target);
});
</script>

Последний раз редактировалось monolithed, 15.09.2012 в 21:46.
Ответить с цитированием