apply plugin to a new element in the DOM (jquery)

后端 未结 4 760
故里飘歌
故里飘歌 2020-12-12 01:23

I am using the jquery tablesorter plugin and applies it to a table with id : #table

my search facility requests for results via ajax and replaces the table with a ne

相关标签:
4条回答
  • 2020-12-12 01:28

    $.live() will not work in this case. You'll need to manually re-apply it to all new tables following the ajax-success.

    0 讨论(0)
  • 2020-12-12 01:35

    you have to re-run $('#table').tablesorter(); after search request completed.

    $.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 讨论(0)
  • 2020-12-12 01:49

    expanding on what Q8-coder said, anything you insert into the dom (even if it was there before) usually must be rebound to any event handlers and functions.

    supposedly jQuery's made (or is making) a deep clone of DOM Nodes including the event handlers as well. this would be cool, because it solves this problem.

    0 讨论(0)
  • 2020-12-12 01:51

    You could do

    function newTable() { // or whatever...
        var $table = $('<table />'); // create new table
        $table.tablesorter();
    };
    
    0 讨论(0)
提交回复
热议问题