Событие щелчка jQuery не работает с заменой ссылки setInterval

0

Я делаю инкрементную игру в javascript, поэтому я все время заменяю некоторые ссылки на странице, эти ссылки показывают действительно странное поведение. Я присоединяю события click с помощью.on (и несколько раз, когда событие click запускается, а иногда нет, очень случайное. Вот ясный пример поведения beeavior. Я могу себе представить, что это связано с временным интервалом, потому что если я устанавливаю интервал в 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/

Благодарю!!

Теги:
onclick
setinterval

1 ответ

2

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

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


DEMO с 1000 мс = 1 с setInterval
  • 0
    Да, я знаю, что с 1 секундой работает, но, например, попробуйте с 500 мс, 500 мс это много времени, и иногда событие не запускается.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню