обработка событий JavaScript - PullRequest
1 голос
/ 28 мая 2011

У меня есть запрос. Я использую для вызова функции на событие JavaScript двумя способами.

  1. Внутри тега HTML как:

    <div id='someid' onmouseover='callFunc()'>Some Text</div>
    
  2. Внешний тег, как в теге скрипта / внешнем файле:

    document.getElementById('someid').onmouseover=function(){
        alert('hi');    
    }
    

Теперь я думаю, что оба служат одной и той же цели, тогда есть ли разница между этими двумя способами? Какой из них лучше? Каковы плюсы и минусы обоих? Во-вторых, есть ли другой способ вызова этой функции?

Ответы [ 2 ]

3 голосов
/ 28 мая 2011

Оба плохие. Вы хотите addEventListener . Библиотека типа jQuery сделает это намного проще, например:

$('#someid').mouseover(function() { alert('hi') });

Помещение JavaScript в строку HTML никогда не является хорошей идеей; трудно написать (вам нужно беспокоиться о побеге) и трудно поддерживать.

Назначение непосредственно на on* - это нормально, но тогда вы не можете иметь несколько обработчиков событий для одного и того же события в одном и том же элементе. Если какой-то другой код попытается добавить обработчик позже, он уничтожит ваш обработчик.

0 голосов
/ 28 мая 2011

Это намного лучше отделить ваш код от html.

Когда весь ваш код хорошо организован в одном разделе или, что еще лучше, в отдельном файле, гораздо проще поддерживать ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...