jQuery Перепривязка события зависания (помощник) - PullRequest
0 голосов
/ 25 ноября 2008

Когда страница загружается, я вызываю функцию, которая помещает событие hover в $ ('a.tooltip'). Когда я хочу отменить привязку к этому событию, я делаю следующее:

   $('a.tooltip').unbind('mouseover mouseout');

Это работает! Однако, когда я хочу перепривязать событие hover и снова вызываю функцию, которая была впервые загружена при готовности документа, она не перепривязывает помощник при наведении. Как я могу связать это?

Спасибо,

Ice

Ответы [ 2 ]

3 голосов
/ 25 ноября 2008

Вы уверены, что привязка работает правильно? По моему опыту, .hover () выполняет правильную привязку, но мне пришлось использовать этот синтаксис отмены:

$(this).unbind('mouseenter').unbind('mouseleave');

Когда я попытался поместить оба события в один unbind (), он связал только одно из них.

Интересно, это у тебя происходит? (Или если выбор mouseover против mouseenter и т. Д. Имеет значение?)

Обновление

Согласно quirksmode.org , mouseenter и mouseleave являются событиями, специфичными для IE, но, как отметил Джимми в комментариях, jQuery реализует их также и для других браузеров.

0 голосов
/ 25 ноября 2008

Я обнаружил, что когда я использую метод связывания, все может быть немного суетливо. Возможно, вы захотите попробовать использовать функцию зависания (over, out):

 $(this).hover( 
    function() {
       if (okayToHover) { dowhatever; } 
    },
    function() {
       if (okayToUnhover) { undowhatever; }
    });

Я знаю, что это кажется немного окольным, но я нахожу, что функция наведения дает мне немного больше контроля над тем, что происходит, и, кажется, работает лучше по любой причине. Это только по моему опыту ...

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