применить плагин к новому элементу в DOM (jquery) - PullRequest
2 голосов
/ 18 декабря 2009

Я использую плагин jquery tablesorter и применяю его к таблице с идентификатором: # table

мое средство поиска запрашивает результаты через ajax и заменяет таблицу новой таблицей с таким же идентификатором

если мой код такой:

$('#table').tablesorter();

что мне добавить, чтобы плагин работал на новой таблице? (Я знаю о живом событии jquery, но как мне использовать это в этом случае?

Ответы [ 4 ]

4 голосов
/ 18 декабря 2009

Вы должны повторно запустить $('#table').tablesorter(); после завершения поискового запроса.

$.ajax({
 type: "POST",
 url: "search.php",
 data: "query=blabla",
 success: function(html){

    // replace old table with new table

    // re-apply table sorter
    $('#table').tablesorter();

 }

});

0 голосов
/ 18 декабря 2009

расширяя сказанное Q8-кодером, все, что вы вставляете в dom (даже если это было раньше) обычно должно быть привязано к любым обработчикам событий и функциям.

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

0 голосов
/ 18 декабря 2009

Вы могли бы сделать

function newTable() { // or whatever...
    var $table = $('<table />'); // create new table
    $table.tablesorter();
};
0 голосов
/ 18 декабря 2009

$. Live () не будет работать в этом случае. Вам нужно будет вручную повторно применить его ко всем новым таблицам после ajax-success.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...