Прикрепить событие с динамическим содержимым с помощью jquery - PullRequest
0 голосов
/ 14 сентября 2011

У меня есть таблица с 4 строками, и когда я нажимаю на любую строку, новая добавляется сразу после строки, где я щелкнул.здесь я даю свой код, просто чтобы показать, как я этого добиваюсь с помощью jquery.

мой jquery, с помощью которого я добавляю новую строку сразу после строки, где я щелкнул.;

проблема в том, что я добавляю новую строку с помощью jquery, но событие click не связывается с новым.поэтому, пожалуйста, покажите мне, как лучше добавить событие клика с новой строкой.

Ответы [ 3 ]

0 голосов
/ 14 сентября 2011

Вы хотите использовать .live (..) , чтобы связать событие. Это позволит динамически генерируемым элементам DOM использовать одно и то же событие.

$("table#Table1 tr").live( 'click', function () {
            var $tr = $(this).closest('tr');
            var myRow = ($tr.index() + (++counter));
            $(this).after("<tr ><td>" + myRow + ")&nbsp;</td><td><img src='Images/closelabel.png' id='imgExpandCollapse' alt='ABC' style='cursor:pointer'/></td><td>Name : New one</td><td>Desig : CEO</td></tr>");

        });
0 голосов
/ 14 сентября 2011

Попробуйте $ .fn.delegate

http://api.jquery.com/delegate/

0 голосов
/ 14 сентября 2011

Попробуйте изменить -

$("table#Table1 tr").click(function () {

на

$('table#Table1 tr').live('click', function() {

Это должно гарантировать, что jQuery привязывает событие click ко всем строкам таблицы, включая те, которые создаются динамически.* Рабочая демоверсия - http://jsfiddle.net/w5Atk/

...