Jquery / JS Нет обработки событий в динамически генерируемой таблице - PullRequest
0 голосов
/ 22 февраля 2012

У меня следующая проблема: я использую ajax-запрос для получения информации о клиенте, возвращаемая информация заполняет таблицу.Только Фамилия, имя и фамилия, а также поле: идентификатор клиента отсутствует.

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

НО: очевидно, jquery не позволяет обрабатывать события в динамически генерируемых строках.

Строки, генерирующие запросы: (работает): var tblRow ="tr class='2clicks'"+"td style='display:none'"+cust.Code_Client+"/td"+"td"+cust.FirstName+"/td"+"td"+cust.lastName+/td+td+cust.DOB+"/td"+"/tr" ; $(tblRow).appendTo("#inserthere");

Обработка событий через класс: $(".2clicks").dblclick( function (){ alert("ok"); });

также попытался с «on» после поиска по stackoverflow, не сработало:

$("#inserthere tr td").on("dblclick", function(event){ alert($(this).parent().children().filter(':first').text()) });

AnyСпасибо за помощь, спасибо

Jquery Events

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

Если вы не используете последнюю версию jquery, вы можете использовать

$(".2clicks").live('click', function(e){ 
    // code here 
});

Если вы используете последнюю версию, вы можете использовать

$('#inserthere').on('click', '.2clicks', function(e){
    // code here
});

В новой версии Live устарела.

0 голосов
/ 22 февраля 2012

Чтобы делегировать события с помощью on(), вам нужно вызвать его для родительского статического элемента, который, как вы уверены, будет в DOM ready, а затем передать ему динамический селектор потомков, чтобы делегировать события.

$('#inserthere').on('dblclick', 'td', function (e) {
    // Something here
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...