将两个事件绑定到AND逻辑运算符是否可行,以便两个事件都必须处于活动状态才能调用该函数?说我有这个:
foobar.bind("foo AND bar", barfunc);
function barfunc(e) {
alert("foobar!");
}
因此,为了barfunc
被调用,foo
和bar
都需要处于活动状态。这将非常有用,因为我正在使用div(不能使用jquery UI滑块)制作滑块/导引头,当我按下鼠标按钮并将鼠标悬停在div上时,我需要它来调用该函数。
答案 0 :(得分:4)
使用这样的语法是不可能的 - 事件永远不会在同一时间触发,一个将始终在另一个之后。也就是说,您可以执行以下操作(基于您的示例的伪代码):
var isHovering = false,
isClicking = false;
function barfunc(e) {
if(isHovering && isClicking){
alert("foobar!");
}
}
foobar.on('mousedown', function(event){
isClicking = true;
barFunc(event);
}).on('mouseup', function(event){
isClicking = false;
}).on('mouseenter', function(event){
isHovering = true;
barFunc(event);
}).on('mouseleave', function(event){
isHovering = false;
});