我正在制定一个时间表,我遇到了一个有趣的问题,似乎无法通过将事件组合成单个任务来解决。请参阅下面的标记。
我的目标是在触发mousemove
&之后阻止mousedown
事件解除悬停mousemove事件的绑定。 mousemove
事件。是否有其他事件类型可以帮助绕过此问题?
注意***事件在发生mouseout
事件后绑定,如果在mousedown
事件结束后鼠标停留在悬停区域内,则会看到事件停止触发。
var tl = $('#timeline');
tl.hover(function(){
$(this).mousemove(function(e){
console('hovering mouse moving : ' +e.pageX)
});
}).mouseout(function(){
$(this).unbind('mousemove');
});
// Timeline Mouse Down Event
tl.mousedown(function(e){
$(this).mousemove(function(e){
console('mousedown moving')
});
}).mouseup(function(){
$(this).unbind('mousemove');
}).mouseout(function(){
$(this).unbind('mousemove');
});
function console(txt){
$('#console').html(txt);
}

#timeline {height:100px;width:100%;background-color:#333;}
#console {border: 1px solid #333;padding:0.5em;}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<body>
<div id='timeline'></div>
<br>
<div id='console'>Log</div>
</body>
</html>
&#13;
我应该合并这样的事件吗?或者像上面的例子一样离开?
var tl = $('#timeline');
tl.hover(function(){
$(this).mousemove(function(e){
// task runs here
}).mouseout(function(){
$(this).unbind('mousemove');
});
}).mousedown(function(e){
$(this).mousemove(function(e){
// task runs here
}).mouseup(function(){
$(this).unbind('mousemove');
}).mouseout(function(){
$(this).unbind('mousemove');
});
});
&#13;