Jquery - stopPropagation在带有live事件的表tr中不起作用

时间:2012-08-13 10:28:38

标签: jquery html

请查看以下JS Fiddle链接,

http://jsfiddle.net/smanimani/ENJBs/27/

实际上我需要的是,我在所有TR行的每个第一个TD中都有一个链接按钮。当我们点击一​​个表行时,想要在点击行后显示一个新行,但我不想要在链接按钮中显示该新行...单击...

检查以上链接...当我们点击第一行时,新行将完美地延迟播放&当我们点击链接按钮时,新行也不显示.... 但是当我们在第二行中执行相同的操作时,单击链接按钮时会显示新行....

当我们点击 link 按钮时,我不想显示该新行......

如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您不能在event.stopPropagation()方法的事件处理程序中使用.live()

  

在事件处理程序中调用event.stopPropagation()无效   停止文件中较低的事件处理程序;事件有   已经传播到文件。

答案 1 :(得分:0)

只需删除:first伪并使用此功能;

$(".AltTR td a").live('click',function(e){

Here 是一个工作小提琴。

答案 2 :(得分:0)

您需要更改:首先:第一个孩子看到文档here

另外,对于jquery 1.7.2 live,不建议使用on

$(".AltTR").on('click', 'td', function(e){
    var GetTRId = $(this).closest("tr").attr('id');
    //alert("AltTR");
        expandrow(GetTRId);
});

$(".AltTR").on('click', 'td:first-child a', function(e){
    //alert("a");
        e.stopPropagation();
});