将jQuery函数应用于动态添加项

时间:2011-01-23 16:59:28

标签: javascript jquery

我的问题基本上是the same as this one(从未得到妥善回答)。

如何在动态添加的项目上使用jQuery函数?

具体来说,我希望在用户执行某些操作后动态加载到页面上的jquery tablesorter plugin

这是我的代码:

 results_html += "<table id='results' class='tablesorter><thead>"; 
 [My table contents go here, ommitted for this question]
 results_html += "</tbody></table>";
 $('#book_results').html(results_html);
 $("#results").tablesorter(); 

页面上没有JS错误,但没有应用tablesorter函数。我该怎么办?

谢谢!

2 个答案:

答案 0 :(得分:2)

Tablesorter有一个触发器函数,您可以调用该函数将一个tablesorter添加到动态添加的元素中。请在此处查看Ajax example。这样的事情对你有用:

 $("#results").tablesorter(); 
 $("#results").trigger("update");

有时您需要致电$("#results").trigger("appendCache");。我还没有找到原因。

答案 1 :(得分:0)

查看该代码,我只能想到两个不起作用的原因:

  1. 如果results不是页面上的唯一ID。
  2. 如果开头行中的拼写错误实际上在您的代码中(您在'tablesorter'类之后错过了结束'

    results_html += "<table id='results' class='tablesorter><thead>"; 
                                                        // ^-- here
    
  3. 从根本上说,它的工作原理是:http://jsbin.com/ikebu4/2这看起来并不多,因为我没有包含任何表格分类器CSS,但是如果单击列标题,它就会起作用。基本上有一个预先存在的表,然后是一个动态添加一个的按钮。 tablesorter的东西适用于两者。