另一个事件内的keypress事件多次跳跃

时间:2013-05-16 10:47:06

标签: jquery

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

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

Living Demo

如何避免多次触发?我希望keypress事件仅触发一次,与上一次click事件相对应的调用,反映点击次数。

以下是代码:

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

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

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

2 个答案:

答案 0 :(得分:3)

使用-->取消绑定上一个活动的演示.off() http://jsfiddle.net/jWVck/6/

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

});

答案 1 :(得分: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...");
    }
});


});