Jquery 如何禁用未绑定事件

Jquery 如何禁用未绑定事件,jquery,Jquery,我正在使用unbind禁用悬停事件,然后想再次启用它。 怎么做 $(document).ready(function () { if(localStorage.getItem('options')=='disable'){ $(".pasteOptions").unbind('hover',handler); } }) var handler = function() { alert('hi'); }; $(document).on('click','.copyOp

我正在使用unbind禁用悬停事件,然后想再次启用它。 怎么做

$(document).ready(function () {
   if(localStorage.getItem('options')=='disable'){
     $(".pasteOptions").unbind('hover',handler);
  }
 })
var handler = function() {
    alert('hi');
};
$(document).on('click','.copyOptions',function () {
   $('.pasteOptions').bind('hover',handler);
})

它不起作用

问题在于没有DOM事件
悬停
——只有
鼠标指针
鼠标移动

您也可以使用jquery
.hover
,但不能将其与
.on
/
.off
一起使用

更改为
mouseenter mouseleave
将为您提供:

//以启用悬停开始,这样.off会执行某些操作
$('.pasteOptions')。悬停(处理程序);
$(文档).ready(函数(){
//关闭悬停
$(“.pasteOptions”).off('mouseenter mouseleave');
})
$(文档).on('单击','.copyOptions',函数(){
//打开悬停按钮
//(注意:请先将其关闭,否则每次单击都会出现多个事件,
//通常情况下,您不会这样做,它会切换到一个勾选框或类似选项
$(“.pasteOptions”).off('mouseenter mouseleave');
$('.pasteOptions')。悬停(处理程序);
})
var handler=function(){
//悬停做某事
$(this.toggleClass(“悬停”);
};
.pasteOptions.copyOptions{高度:100px;宽度:100px;边框:1px纯蓝色;}
.hover{边框:1px纯红色;}

点击我

将鼠标悬停在我身上
你到底想做什么?什么不起作用?我想在.pasteOptions上禁用鼠标悬停事件,然后在单击.copyOptions时启用它。你的问题是没有一个
悬停
事件。你可以使用
鼠标悬停
来模拟它,或者你可以使用
鼠标悬停(func)
。还请注意,.bind/.unbind在2011年被弃用,并在2016年被删除。因此,您可能还希望包括您正在使用的jquery的古老版本。