jquery имеет эквивалент dojo.connect ()? - PullRequest
4 голосов
/ 23 мая 2010

Простите мое невежество, поскольку я не так хорошо знаком с jquery. Есть ли эквивалент dojo.connect ()?

Я нашел это решение: http://think -robot.com / 2009/06 / hitch-object-ориентированных-обработчиков событий с jquery /

Но нет функции отключения!

Знаете ли вы другое решение в jquery? Есть jquery.connect, но этот плагин не работает в моих тестах.

Спасибо за вашу помощь,
Stephane

Ответы [ 4 ]

3 голосов
/ 23 мая 2010

Ближайший эквивалент jQuery: .bind(), например:

$("#element").bind('eventName', function(e) {
 //stuff
});

И .unbind() для удаления обработчика, например:

$("#element").unbind('eventName');

Существуют также ярлыки для .bind(), поэтому, например, click можно сделать двумя способами:

$("#element").bind('click', function() { alert('clicked!'); });
//or...
$("#element").click(function() { alert('clicked!'); });

Существует также .live() (.die() для отмены) и .delegate() (.undelegate() для отмены ) для обработчиков событий, основанных на барботировании, а не на непосредственном присоединении, например для динамически создаваемых элементов.

Приведенные выше примеры были анонимными функциями, но вы можете предоставить функцию напрямую, например, dojo (или любой другой javascript), например:

$("#element").click(myNamedFunction);
2 голосов
/ 23 мая 2010

Что вы подразумеваете под эквивалентом dojo.connect ()?

Если вы хотите создать свои собственные обработчики событий, посмотрите на bind () , Триггер () и прокси () в Событиях .

Функция proxy () позволит вам переопределить то, на что указывает в вашей функции обратного вызова.

1 голос
/ 13 июля 2011

jQuery connect эквивалентно dojo.connect.

1 голос
/ 23 мая 2010

Нет как такового, но вы можете получить то же самое, как показано ниже:

$('#someid').click(function() { SomeFunc($(this)) });

Это подключит somefunc к событию click управления с идентификатором "someid". При щелчке по элементу управления будет вызвана функция, а параметром будет объект jquery, который ссылается на элемент управления, по которому был выполнен щелчок.

Обновление Я только что провел немного больше исследований и думаю, .delegate () ближе к тому, что вы хотите.

...