2012-08-13 37 views
0

请检查下面的JS小提琴链接,jQuery的 - stopPropagation没有在表TR工作与生活事件

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

其实我需要的是,我有一个链接按钮,在所有的每首个TD TR行。当我们单击一个表行,想显示点击一行之后新行,但我不希望显示的链接按钮,单击该新行......

检查上面的链接...当我们点击第一行,新行将会完美地延伸&当我们cli ck链接按钮新行不显示.... 但是,当我们在第二行做同样的操作,点击链接按钮时显示新行....

我不想显示那个新行,当我们点击链接按钮 ...

如何我解决这个问题?

+0

你意识到了吗['.live ()'已弃用](http://liveisdeprecated.com)?你应该使用'.on()'(jQuery 1.7+)或'.delegate()'。 – 2012-08-13 10:31:30

回答

0

只需卸下:first伪和使用;

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

Here是工作提琴。

+0

嗨@blasteralfred ..假设,我在每个TD中都有一个链接按钮,我想在第一次TD *链接*按钮点击时禁用新行。如何实现它? – 2012-08-13 10:40:50

+0

所以如果第一个链接被点击,什么都不应该再发生,没有其他行应该扩大权利? – 2012-08-13 10:44:09

+0

是的....不需要显示该新行,只是它重定向到另一个页面,但它只是在重定向到新页面之前向下滑动新行 – 2012-08-13 10:46:02

1

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

在事件处理程序中调用event.stopPropagation()在 中停止附加在文档中较低位置的事件处理程序;该事件已经传播到文档 。

0

你需要改变:首先:第一,孩子看到文档here

另外的jQuery 1.7.2现场已被弃用,使用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(); 
});