我的.off功能似乎不起作用:
<script type="text/javascript">
$(function() {
$("#evtTarget").hover(highlight, highlight);
$("#evtTarget").click(function(){
$("#evtTarget").off("hover");
});
});
function highlight(){
$("#evtTarget").toggleClass("highlighted");
}
</script>
我可以删除.hover事件吗?
答案 0 :(得分:2)
没有hover
事件。来自the documentation:
致电$( selector ).hover( handlerIn, handlerOut )
是:
$( selector ).mouseenter( handlerIn ).mouseleave( handlerOut );
所以试试这个:
$('#evtTarget').off('mouseenter mouseleave');
答案 1 :(得分:0)
.off('hover'
不起作用,因为hover
实际上不是DOM事件。 .hover()
是mouseenter
和mouseleave
合并的简写。
因此,您应该这样做:
$(function() {
$('#evtTarget').on({
'mouseenter mouseleave':function(){
$(this).toggleClass("highlighted")
},
click:function(){
$(this).off('mouseenter mouseleave');
}
});
});
这将删除这些事件的绑定。出于优化目的,我还冒昧地使用缓存和合并代码。