2012-08-13 74 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(); 
}); 
相關問題