jQuery click事件不能与setInterval替换链接

时间:2013-11-11 15:52:09

标签: javascript jquery onclick setinterval

我正在使用javascript制作增量游戏,所以我一直在替换页面中的一些链接,这些链接显示出一种非常奇怪的行为。我正在使用.on附加点击事件(有时候点击事件会被触发,而有些时候不是,非常随机。 Here是一个明显的例子。我可以想象这与时间间隔有关,因为如果我将间隔设置为1000毫秒,则事件总是被触发。当然,我可以在代码中进行一些更改,以便不替换链接并仅更新它,但我想知道这是否可以先修复。

HTML:

<div id="container"><a id="link" href="#">test</a></div>

JS:

$(document).ready(function(){
$("#container").on("click","#link",function(){
    alert("clicked");
});
setInterval(function(){
    var newA = $("#link").clone();
    $("#link").remove();
    $("#container").append(newA);
},100);});

jsFiddle中的示例: http://jsfiddle.net/MtR6b/1/

谢谢!

1 个答案:

答案 0 :(得分:2)

您的setInterval代码非常快100 ms这就是为什么当事件即将触发元素的时候replaced是新的,因此click event不是triggered

点击链接clicking上的many times,您会看到alert

<小时/> DEMO with 1000ms=1s setInterval