我想将两个鼠标事件绑定到一个函数(mousedown和moucemove)。但我想只在两个事件都被触发时才运行该函数。
这会将每个事件绑定到函数:(这不是我想要的)
$("#someid").bind("mousedown mousemove", function (event) { someFunction(); });
我能做到这一点并且有效:
$("#someid").bind("mousedown", function (event) {
someFunction();
$("#someid").bind("mousemove", function (event) {
someFunction();
});
});
$("#someid").bind("mouseup", function (event) {
$("#someid").unbind("mousemove");
});
有更好,更快的方法吗?
答案 0 :(得分:2)
仅绑定到 mousemove 事件。如果在移动时按下鼠标左键,则event.which将为1。
$(document).on('mousemove', function(e) {
if (e.which == 1) {
//do some stuff
}
});
答案 1 :(得分:0)
我想你只希望mousemove
处理程序在按下鼠标按钮时工作?如果是这样,我建议使用某种布尔标志。您在mousedown
和mouseup
事件上切换其状态:
var flag = false;
$('#someid')
.on('mousedown', function(e) {
flag = true;
})
.on('mouseup', function(e) {
flag = false;
})
.on('mousemove', function(e) {
if (!flag) {
return false;
}
// else... do your stuff
});