如何取消绑定mousemove功能

时间:2018-04-12 22:50:36

标签: javascript jquery

当用户在网页上移动鼠标时,我想跟踪它。然后我想取消绑定该侦听器,以便不再跟踪mousemove。我怎样才能做到这一点?下面的代码似乎不起作用。

var clearIdleInterval = function () {
                console.dir('unbind');
                clearInterval(this.idleInterval);
                $(document).unbind('mousemove', clearIdleInterval.bind(this));
                $(document).unbind('keypress', clearIdleInterval.bind(this));
            };
$(document).bind('mousemove', clearIdleInterval.bind(this));
$(document).bind('keypress', clearIdleInterval.bind(this));

1 个答案:

答案 0 :(得分:0)

使用.unbind()取消绑定事件。如下图所示。

注意:如果要取消绑定特定元素的mousemove事件,并避免影响其他处理程序,也可以这样做。例如

$( "#foo" ).unbind( "mousemove.myEvents" );

记录得非常好here

希望这很有用。

$(document).bind('mousemove', function(e){
   $(".test").html(`${e.clientX} , ${e.clientY}`)
});

function unBind(){
$(document).unbind( "mousemove" );
}
.test{
 text-align: center;
vertical-align: middle;
line-height: 90px; 
   height : 200px;
   width : 200px;
   border : solid;
   margin-top : 30px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>


<button onclick="unBind()">Un Bind</button>


<div class="test"></div>