Когда страница загружается, я вызываю функцию, которая помещает событие наведения на $ ('a.tooltip'). Когда я хочу отвязать это событие, я делаю следующее:
$('a.tooltip').unbind('mouseover mouseout');
Это работает! Однако, когда я хочу повторно привязать событие зависания и снова вызываю функцию, которая была сначала загружена при готовности документа, она не выполняет повторную привязку помощника наведения курсора. Как его перепрошить?
Спасибо,
Лед

Вы уверены, что отвязка работает правильно? По моему опыту, .hover () выполняет повторную привязку правильно, но мне пришлось использовать этот синтаксис отмены привязки:
$(this).unbind('mouseenter').unbind('mouseleave');
Когда я попытался поместить оба события в один unbind (), он отвязал только одно из них.
Интересно, происходит ли это с вами? (Или если выбор mouseover против mouseenter и т. д. Имеет значение?)
Согласно quirksmode.org, mouseenter и mouseleave являются событиями, специфичными для IE, но, как указал Джимми в комментариях, jQuery реализует их и для других браузеров.
Я считаю, что jquery реализует mouseenter и mouseleave
Я обнаружил, что когда я использую метод привязки, все может быть немного суетливым. Возможно, вы захотите попробовать использовать функцию hover (over, out) как таковую:
$(this).hover(
function() {
if (okayToHover) { dowhatever; }
},
function() {
if (okayToUnhover) { undowhatever; }
});
Я знаю, что это кажется немного окольным, но я считаю, что функция зависания дает мне немного больше контроля над тем, что происходит, и, кажется, работает немного лучше по какой-то причине. Это только по моему опыту ...
За кулисами jQuery .hover () просто связывает традиционные события мыши JS. Если по какой-то причине вы захотите отключить, а затем снова включить функцию наведения, как бы вы это сделали?
Спасибо!! Это определенно имеет значение, потому что это просто исправлено. Теперь я снова могу использовать .hover () и повторно связывать его.