jQuery динамически создаваемые строки таблицы, не отвечающие на события - PullRequest
0 голосов
/ 26 августа 2009

У меня есть таблица с одной строкой в ​​моем HTML-файле. Теперь в jQuery я добавляю много строк на основе данных в базе данных. Но тег привязки, который создается динамически, не отвечает к событиям. Как заставить этот якорный тег отвечать на события?

JQuery часть

// Добавление строк из базы данных

$('<tr> <td> </td> <td id="log'+i+'"><a href="viewlog.php" target="_blank">log</a></td></tr> ').appendTo('#container');

Событие часть в JQuery Теперь, когда я пишу такую ​​строку кода, она не отвечает .

$('#container a ').click(function()
{

    alert("Coming here ");
});

// HTML

<html>
    <table id="container">
        <tr>
            <td>
                Name
            </td>
            <td>
                Link
            </td>
        </tr>
    </table>
</html>

Ответы [ 2 ]

4 голосов
/ 26 августа 2009

Если вы назначите событие click в начале, созданные элементы не получат его. Попробуйте:

$("#container a").live("click", function(){
  ...
});

таким образом, каждый раз, когда создается ссылка, к ней присоединяется событие (http://docs.jquery.com/Events/live#typefn).

2 голосов
/ 26 августа 2009

Как подсказывает mck89, событие не будет связано, если вы запустите код до добавления нового домена.

Вы можете связать события по цепочке или использовать вместо них функцию live.

$('your html')
   .appendTo('#container')
   .find('a')
   .click(function() {
      alert('You clicked!');
   });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...