Jquery .on与.live
我知道.live()
现在已被弃用,但我似乎无法改变它并保留function。
我只是对jQuery中的.on()
函数有一个简单的问题。 我目前正在使用.live()
像这样:
$('table tr th').live("click", function() { });
但是,当我尝试用.on()
替换.live()
,它不再像预期的那样工作。
我试过投入
$('table tr th').on("click", function() { });
以及
$('table tr').live("click", "th", function() { });
和
$('table tr').delegate("th", "click", function() { });
但无济于事。
为什么这样做以及我可以采取哪些步骤使其正常工作?
on()
函数需要语法更新,您应该将代码更改为:
$('body').on("click", "table tr th", function()...
有关更多信息,请查看此文章: http : //www.andismith.com/blog/2011/11/on-and-off/
试试这个:
$('table tr th').live("click", function() {
应该
$(document).on("click", "table tr th", function() {
这就是你完全模仿.live
调用的方式。 当然,您可以根据DOM结构将选择器从文档限制为更有意义的选择。
编辑:
只是为了澄清,在您的示例中,您需要使用$(document).on(...
因为该表没有任何父项,并且在页面生命周期内被替换。
确保在最初加载页面时存在所选元素(th / tr)。 如果稍后将此选择器添加到DOM,则新的.on将无法工作。
尝试
$('body').on('click', 'thesSelectorForYourTriggerElement', function(){ //callback });
我猜不到你在表中添加了tr
元素,而不是。
$('table').on("click", "tr th", function(){});