1

我使用 Javascript 动态添加了下表:

    <table class="ActionMenu">
<tr>
<td>
<p>Ghanshyam</p>
</td>
</tr>
</table>

我想在单击此表时获得警报..

我试过:

$('body').on("click", ".ActionMenu tr", function (e) {
      alert("abcd");
 });

$('.ActionMenu ').on("click", "tr", function(){
   //do something
});

$('.ActionMenu').live('click',function(){});

$('#ActionTab').delegate('.someClass','click',function(){});

但以下方法都不起作用..我怎样才能实现我的目标?谢谢

4

3 回答 3

2

您是否将代码封闭在$(document).ready()块中?如果没有,则尝试将其包含在 document.ready 函数中

$(function(){
$('body').on("click", ".ActionMenu tr", function (e) {
      alert("abcd");
 });

$('.ActionMenu ').on("click", "tr", function(){
   //do something
});

$('.ActionMenu').live('click',function(){});

$('#ActionTab').delegate('.someClass','click',function(){});
});
于 2012-05-16T11:02:32.620 回答
1

乍一看,您的选择器有点偏离,请尝试:

$('table.ActionMenu tr').on('click',callback);

由于这不起作用:建议了几件事:

  • 您使用的是什么版本的 jQuery,on如果您使用的是旧版本,可能无法正常工作
  • 你试过$(body).on('click', '.ActionMenu tr', function() { alert('clicked'); });吗?.on需要时更换.live
  • 一个经典的问题,但很容易被遗忘:您是否检查过任何一个类名中的拼写错误,id ......在两侧(服务器和 jQuery)? - 你永远不会知道
  • 是否所有代码都包含在一个$(document).ready(function(){/*script goes here...*/});
  • 检查您的控制台是否有可能的语法错误或其他消息
于 2012-05-16T10:58:51.593 回答
1
$(document.body).on('click', '.ActionMenu tr', function() { alert('clicked'); });

http://jsfiddle.net/MWvMH/1/

于 2012-05-16T11:02:55.640 回答