2013-03-18 47 views
-1

我用click事件上的表行这样的绑定:简单的jQuery事件绑定不工作了

$('#example tbody > tr').on('click', function() { 
    console.log("i clicked on a row"); 
}); 

但它不工作了。我重新尝试从1.8.0到1.9.1(最新)的jQuery,它什么也没做。我检查它是否是twitter-bootstrap(从bootstrapcdn中检索到):从2.1.0到2.3.1没有任何改变。

我的测试配置是FireFox/Chrome的最新版本。该网站在symfony2上运行,使用jQuery plus twitter bootstrap和Datatables plugins/css。

所以,问题:

  1. 如何调试?
  2. 任何解决方案?
+1

你是替换/移动行或添加新行后事件被绑定?你是否在等待文档准备好绑定代码? – 2013-03-18 14:46:18

+0

确保选择器返回一个值。以编程方式触发点击事件。使用.click() – adamb 2013-03-18 14:50:17

回答

1

调用的正确的方式委托on事件被它..delegating到最近的静态元素..

试试这个

$(function(){ //incase you missed the doc.ready 
    $('#example tbody').on('click','tr', function() { 
    console.log("i clicked on a row"); 
    }); 
}); 

$(document).on('click','#example tbody tr', function() { 
    console.log("i clicked on a row"); 
}); 

第一on是更好,更快,然后第二个..只是当事件被称为..元素在哪里c舔被委托需要在文件中出现..

+0

确切。我进一步检查了jquery文档。我在切换到新的jQuery版本之前使用.live(.live被折旧),看起来我读得太快了。谢谢:) – user1254498 2013-03-18 14:53:45

+0

欢迎..快乐编码..很高兴它帮助.. :) – bipen 2013-03-18 14:54:40