Javascript 如何使JS函数以自身为目标以避免冲突
如何使JS函数以自身为目标以避免冲突,我想让下面的脚本只以自身为目标,例如mouseup>unbind mousemove,我想让它只以自身为目标Javascript 如何使JS函数以自身为目标以避免冲突,javascript,jquery,Javascript,Jquery,如何使JS函数以自身为目标以避免冲突,我想让下面的脚本只以自身为目标,例如mouseup>unbind mousemove,我想让它只以自身为目标 var i = 0; $('#dragbar').mousedown(function(e){ e.preventDefault(); $(document).mousemove(function(e){ $('#sidebar').css("width",e.pageX+2);
var i = 0;
$('#dragbar').mousedown(function(e){
e.preventDefault();
$(document).mousemove(function(e){
$('#sidebar').css("width",e.pageX+2);
})
});
$(document).mouseup(function(e){
$(document).unbind('mousemove');
});
应该使用变量执行此操作:
var canMove = false
$('#dragbar').mousedown(function(e) {
e.preventDefault()
canMove = true
})
$('#dragbar').mouseup(function(e) {
e.preventDefault()
canMove = false
})
$(document).mousemove(function(e) {
canMove && $('#sidebar').css("width", e.pageX + 2)
})
根据经验,将事件侦听器彼此嵌套是个坏主意:因为每次触发mousedown时都要绑定一个新的事件侦听器。
var canMove = false
$('#dragbar').mousedown(function(e) {
e.preventDefault()
canMove = true
})
$('#dragbar').mouseup(function(e) {
e.preventDefault()
canMove = false
})
$(document).mousemove(function(e) {
canMove && $('#sidebar').css("width", e.pageX + 2)
})