1

keypress在另一个事件(点击事件)中使用一个事件。这是因为它需要在父事件内部计算多个变量,并且它应该只在事件之后触发click

如果点击事件被多次触发,那么当我按下指定键一次时,它们keypress的事件将被触发与点击事件相同的次数。

现场演示

如何避免它多次触发?我希望keypress事件只触发一次,对应最后一个click事件的调用,反映点击次数。

无论如何,这是代码:

$('#demo').click(function(){
    var demo = "hello";

    $(document).keypress(function(e) {

        //enter key
        if(e.which == 13) {
            alert("Firing multiple times..." + demo);
        }
    });
});
4

2 回答 2

3

工作演示--> http://jsfiddle.net/jWVck/6/ 用于.off()取消绑定以前的事件

var cont = 0;
$('#demo').click(function () {
    var demo = "hello";
    cont++;
    $('#counter').find('span').html(cont);
    $(document).off('keypress').on('keypress',function (e) {
        //enter key
        if (e.which == 13) {
            console.log("Not Firing multiple times...");
        }
    });

});
于 2013-05-16T10:51:33.970 回答
2

尝试这个:

var cont  = 0;

$('#demo').click(function(){

var demo = "hello";
cont++;

$('#counter').find('span').html(cont);

$(document).unbind().keypress(function(e) {
            ^^^^^^^^|________________________ new update.
    //enter key
    if(e.which == 13) {
        alert("Firing multiple times...");
    }
});


});
于 2013-05-16T10:56:16.120 回答