2013-03-05 2 views
-1

У меня есть некоторый код, который свойствен храповое событие класса:Нажмите событие не сохраняется для новых динамически создаваемых элементов

$(".filter-link").click(function (e) { 
    $("#filter").dialog("option", "position", 
        { my: "left top", at: "left bottom", of: e }); 
    $("#filter").dialog("open"); 
}); 

Элемента Я использую его на динамически воссоздан часто:

function addTopLinks() { 
    $('#calendar .fc-view thead th.fc-resourceName') 
     .removeClass('top-calendar-cell'); 
    $('#calendar .fc-view thead th.fc-resourceName') 
     .addClass('top-calendar-cell'); 
    $('#calendar .fc-view thead th.fc-resourceName') 
     .html('<a class="filter-link" href="#">Filter Resources</a>'); 
}; 

Есть ли способ, по которому я могу получить клик, чтобы продолжить, или я буду вынужден переназначить клик при каждом повторном создании элемента?

Благодаря

+1

Это дубликат много вопросов! Ответ будет использоваться '.on()' правильно будет работать. Не нужно снова писать полностью – Popnoodles

+2

@ Первым удалены они. Жив ... Это старый ответ. Вопрос, который я опубликовал, является недавним, заменил .live и другие. –

+0

Ah OK - ну, надеюсь, кто-то найдет лучшего; там должны быть тысячи таких вопросов :-) – Pointy

ответ

2

Использование .on():

$(document).on("click", ".filter-link", function (e) { 
    $("#filter").dialog("option", "position", 
      { my: "left top", at: "left bottom", of: e }); 
    $("#filter").dialog("open"); 
}); 
+1

Опять же, пожалуйста, не отвечайте на дублированные вопросы -_- –