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

时间:2015-07-14 13:58:06

标签: javascript jquery events

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

foobar.bind("foo AND bar", barfunc);

function barfunc(e) {
    alert("foobar!");
}

因此,为了barfunc被调用,foobar都需要处于活动状态。这将非常有用,因为我正在使用div(不能使用jquery UI滑块)制作滑块/导引头,当我按下鼠标按钮并将鼠标悬停在div上时,我需要它来调用该函数。

1 个答案:

答案 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;

});