прикрепить обработчик событий jquery с помощью html? - PullRequest
2 голосов
/ 16 ноября 2010

Мне нравится, как jQuery оборачивает события, когда вы используете его метод "bind". Однако неудобно устанавливать привязки. Есть ли способ объединить простоту html (например, onKeyPress="foo(event)") с совершенством jQuery, независимым от браузера?

Ответы [ 3 ]

1 голос
/ 16 ноября 2010

Вы имеете в виду, как это?

function foo(event) {
    alert(event.target);
}

$('.someSelector').keypress(foo);

В HTML или javascript, вам нужно создать функцию foo, так что, возможно, это ближе к тому, что вы искали.

Я не уверен, что именно вы чувствуете неловкость в привязке обработчика jQuery.

1 голос
/ 16 ноября 2010

Вы, вероятно, не хотите этого делать.

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

Вот основные моменты:

Делегирование событий имеет несколько преимуществ к производительности сети Применение:

Меньше функций для управления. Занимает меньше памяти Меньше связей между вашими код и ДОМ. Не нужно беспокоиться об удалении обработчиков событий, когда изменение DOM через innerHTML.

Вам лучше использовать помощники привязки jQuery, такие как $ what.click (fn) и т. Д.

На самом деле вот еще один вопрос по SO , который ссылается на ту же статью, что и я, что также может помочь.

0 голосов
/ 16 ноября 2010

Хорошая идея - на самом деле разделить их, чтобы ваш HTML был чистым и js находились в отдельном месте. Вы можете попробовать ярлыки типа $('a').click(...) вместо $('a').bind('click'...), но это все. Лично мне нравится, когда привязки отделены от разметки.

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