jQuery-将两个事件绑定到一个AND运算符

jQuery - Bind two events to an AND operator

本文关键字:一个 AND 运算符 两个 jQuery- 事件 绑定      更新时间:2023-09-26

是否可以将两个事件绑定到AND逻辑运算符,以便两个事件都必须处于活动状态才能调用函数?假设我有这个:

foobar.bind("foo AND bar", barfunc);
function barfunc(e) {
    alert("foobar!");
}

因此,为了使barfunc被调用,foobar都需要是活动的。这将非常有用,因为我正在用div制作滑块/搜索器(不能使用jquery UI滑块(,并且当我按下鼠标按钮并将鼠标悬停在div上时,我需要它来调用函数。

使用这样的语法是不可能的——事件永远不会同时启动,一个总是在另一个之后。也就是说,你可以做如下的事情(基于你的例子的伪代码(:

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;
});