Обработчики событий в Firefox против IE / Chrome - PullRequest
0 голосов
/ 28 июня 2011

Я работаю с некоторыми обработчиками событий, и меня немного смущает один аспект.

В соответствии с этим потоком, Firefox придерживается стандартов WC3 и передает события нажатия в качестве параметра вашему обработчику. Затем вы можете получить доступ к этому событию, кодируя MyHandler(event). Однако что, если вы уже передаете другой параметр?

В частности, моя функция onClick - editItem(this), где this относится к строке таблицы, по которой щелкнули. Однако мне нужно вызвать event.stopPropagation() внутри функции editItem, чтобы предотвратить отключение некоторых других обработчиков. В IE и Chrome это работает, но в Firefox event.stopPropagation() дает мне нулевой указатель, что имеет смысл, потому что я не принимаю параметр события в editItem(this).

У меня вопрос, как мне взять и this, и event в моей функции onClick? Могу ли я просто добавить их как editItem(this, event)? Как Firefox узнает, какое событие является событием, а какое - моим личным параметром?

1 Ответ

3 голосов
/ 28 июня 2011

Вы можете сделать editItem(this, event), как вы упомянули. Тогда ваша функция должна быть определена так:

function editItem(element, event){
   ...
}

Он будет знать, какой параметр, какой из-за порядка параметров.

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