繁体   English   中英

在单击内取消绑定jQuery悬停事件处理程序

[英]unbind a jquery hover event handler within click

我有旋转的jQuery选项卡,当您将鼠标悬停在它们上时,我想暂停它们,而在单击时停止旋转。

但是 ,尽管暂停工作正常,但我无法取消绑定悬停事件(即使分别取消绑定mouseenter和mouseleave)。

我在这里用两种不同的方法创建了两个jsfiddles,它们都有相同的问题。

http://jsfiddle.net/bdrvC/15/

function tab_hover_in() {
        $(this).tabs('rotate', 0, false);
}
function tab_hover_out() {
        $(this).tabs('rotate', 3000, false);
}
function tab_click() {
        $(this).tabs('rotate', 0, false);
        $(this).unbind('mouseenter',tab_hover_in);
        $(this).unbind('mouseleave',tab_hover_out);
        event.preventDefault();  
}

$('.tabs-rotate').tabs({
        selected: 'tabs-1'
}).tabs('rotate', 3000, false);

$('.tabs-rotate').bind({
        'click': tab_click,
        'mouseenter': tab_hover_in,
        'mouseleave': tab_hover_out
});

http://jsfiddle.net/bdrvC/16/

$('.tabs-rotate').tabs({
  selected: 'tabs-1'
}).tabs('rotate', 3000, false);

$('.tabs-rotate').hover(function() {
    $(this).tabs('rotate', 0, false);
  }, function() {
    $(this).tabs('rotate', 3000, false);
});
$('.tabs-rotate').click(function() {

  $(this).tabs('rotate', 0, false);
  $(this).unbind('mouseleave');

});

任何人都可以解释为什么即使单击后旋转仍然继续吗?

非常感谢!

您的点击事件未绑定到适当的元素...您可以使用

$('.ui-tabs-nav li a').click(function() {...});

代替

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM