Нажмите событие на столе в jQuery - PullRequest
1 голос
/ 14 октября 2011

У меня есть html, мне нужно динамически добавлять строки в таблицу, а также мне нужно отлавливать событие click в классе div append.Как этого добиться любая идея?

JavaScript:

$(document).ready(function() {

    $("#click").click(function() {
        $('table').prepend('<tr> <td>something3</td> <td> <a><div class="s"> s </a> </td></tr>');
    });


    $(".s").click(function() {
        alert("Ok");
    });

});

HTML:

<input type="button" id="click" value="click"/>

<table width='100%'>
    <tr><td>something</td><td>else here</td></tr>
    <tr><td>something2</td><td>else here2</td></tr>
    <tr><td>something3</td><td>else here3</td></tr>
</table>

1 Ответ

4 голосов
/ 14 октября 2011

См. Метод live(), он позволяет связать событие для всех текущих и будущих элементов в DOM, соответствующих данному селектору.

 $(".s").live('click', function(){
    alert("Ok");

 });

jQuery docs скажем:

Прикрепить обработчик к событию для всех элементов, которые соответствуют текущему селектору, сейчас и в будущем


Обратите внимание , что этот ответ был написан в октябре 2011 года, когда jQuery 1.6.4 был королем.live() устарел в 1,7 в пользу использования on().Эквивалентный синтаксис теперь:

 $(document).on("click", ".s", function(){
    alert("Ok");
 });
...