Метод делегата jQuery, не работающий

Я пытаюсь использовать метод делегата для сетки, которую я переношу с DataTables. Сетевой плагин. У меня первоначально был этот код, который работает как ожидалось.

    $("#myGrid tbody tr").click(function() {
        var id = $(this).children('td').eq(0).text();
        alert(id);
    });

Однако, если я изменяю размер подкачки страниц затем, более новые строки не имеют события щелчка, вызывающего функцию. Я решил, что новый метод делегата JQuery должен сделать точно, что я хотел; однако, это не делает ничего вообще ни на каком элементе TR.

Мог любой объяснять, почему это не работает:

    $('#myGrid tbody').delegate('tr', 'click', function() {
        var id = $(this).children('td').eq(0).text();
        alert(id);
    }); 

Я попробовал различные комбинации селектора, и ни один не заставляет его работать.

Спасибо Paul Speranza

11
задан 2 revs, 2 users 100% 10 March 2010 в 15:55
поделиться

4 ответа

Используйте это:

$("#myGrid tbody tr").live('click', function() {
    var id = $(this).children('td').eq(0).text();
    alert(id);
});

.live () работает для текущих будущих элементов.

4
ответ дан 3 December 2019 в 06:46
поделиться

Попробуйте вместо этого:

$('#myGrid').delegate('tr', 'click', function() {
  var id = $(this).children('td').eq(0).text();
  alert(id);
});

Есть большая вероятность, что некоторые события в вашем теле испорчены и / или вашим телом манипулируют. Я сомневаюсь, что от этой проблемы страдает и вся таблица.

15
ответ дан 3 December 2019 в 06:46
поделиться

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

-4
ответ дан 3 December 2019 в 06:46
поделиться

Попробуйте это

$('#myGrid tbody').delegate('click', 'tr', function() {
    var id = $(this).children('td').eq(0).text();
    alert(id);
});

или

$('body').delegate('click', '#myGrid tbody tr', function() {
    var id = $(this).children('td').eq(0).text();
    alert(id);
}); 
1
ответ дан 3 December 2019 в 06:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: