如何执行绑定到事件的侦听器并排除绑定到执行中的不同事件的其余侦听器?

时间:2015-12-07 12:40:52

标签: javascript jquery jquery-events

我有以下jQuery代码:

$input.on('keyup', keyUpListener);

$input.on('input', inputListener);

// IE <= 8 fallback for input event.
$input[0].onpropertychange = function() {
    if (window.event.propertyName === "value") {                
        inputListener(window.event);
    }
};

$input是一个jQuery input[type='text']

现在keyUpListenerinputListener都是在我输入input时或者当我复制并粘贴某些内容时执行的(onpropertychange未被触发,因为它是一个IE只有事件)。

但是,如果inputListener正在执行,我如何告诉JS不要触发keyUpListener,反之亦然?

1 个答案:

答案 0 :(得分:0)

将特定事件附加到文本框?

$("#input").on('input', function () {
}

例如上面 - 这样你可以让多个监听器不在同一个输入上执行

修改

您也可以将粘贴功能绑定到文本框..

$("#input").bind('paste', function() {
var pasted = true;
}); 

因此,您可以使用以下IF语句:

if (pasted) {
$input.on('input', inputListener);
} else {
$input.on('keyup', keyUpListener);
}