JQuery Rebinding события зависания (помощник)

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

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

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

Спасибо,

Лед

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
0
4 285
2

Ответы 2

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

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

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

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

Обновлять

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

Спасибо!! Это определенно имеет значение, потому что это просто исправлено. Теперь я снова могу использовать .hover () и повторно связывать его.

doekman 25.11.2008 17:57

Я считаю, что jquery реализует mouseenter и mouseleave

Jimmy 25.11.2008 23:52

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

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

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

За кулисами jQuery .hover () просто связывает традиционные события мыши JS. Если по какой-то причине вы захотите отключить, а затем снова включить функцию наведения, как бы вы это сделали?

Nathan Long 25.11.2008 18:27

Другие вопросы по теме