2013-11-11 2 views
0

Я делаю инкрементную игру в javascript, поэтому я все время заменяю некоторые ссылки на странице, эти ссылки показывают действительно странное поведение. Я прикрепляю события click с помощью .on (и несколько раз, когда событие щелчка запускается, а иногда нет, очень случайное). Here - это яркий пример поведения beheavior.Я могу представить, что это связано с временным интервалом, потому что, если я устанавливаю интервал в 1000 миллисекундах, событие всегда запускается. Конечно, я могу внести некоторые изменения в код, чтобы не заменить ссылку и только обновлять ее, но я хочу знать, является ли это фиксируемым первыеjQuery click event не работает с setInterval, заменяя ссылку

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/

Благодаря !!

ответ

2

Ваш setInterval код очень быстро 100 ms, поэтому, когда то событие собирается вызвать элемент является replaced с новым так click event не triggered.

Попробуйте clicking по ссылке many times вы увидите alert.


DEMO with 1000ms=1s setInterval

+0

Да, я знаю, что с 1 секунду работает, но, например, попробовать с 500 мс, 500 мс много времени, и несколько раз событие не уволили. – rterrani