我在另一个事件(点击事件)中使用keypress
事件。这是因为它需要在父事件中计算多个变量,因为只应在click
事件后触发。
如果多次触发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);
}
});
});
答案 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...");
}
});
});