2013-03-08 44 views
1

使用數據表和行分組我試圖在單擊輸入時讓行不展開..但僅在單擊tr時展開。 .stopPropagation()不起作用。數據錶行分組停止當單擊輸入時展開

我使用的是.live(),因爲表是由ajax動態創建的。

$("#example input[type='text']").live('click',function(event){ 
    event.stopPropagation(); 
    return false; 
}); 

這裏有一個的jsfiddle: http://jsfiddle.net/JWvZt/

回答

1

進行故障診斷時,我花了一段時間才能發現,你點擊事件在你的jsfiddle勢必兩次(開頭和結尾部分javascript框架)。 去除所述第一個和限定所述第二後爲:

$("#example td").on('click','input[type="text"]', function(event){ 
    event.stopPropagation(); 
    return false; 
}); 

代碼工作如期望。 注意:我正在使用.on(),因爲.live()已被棄用。爲了刷新事件綁定,當您動態創建行時,您必須在AJAX成功處理程序(或.done()方法)中調用上述代碼片段。

這裏有一個link to jsfiddle

+0

出於好奇......任何想法,爲什麼這不工作(相同的代碼 - 不同的順序)? http://jsfiddle.net/ckhXp/如果在點擊數據表加載之前,點擊開始似乎不會觸發。 – Michael 2013-03-12 01:47:57

+0

不是100%肯定的,但我猜想原因是插件重新生成td單元格,所以事件綁定會丟失。順便說一句。從click處理程序返回false足以阻止傳播(可以跳過stopPropagation()調用) – marty 2013-03-12 08:38:55

相關問題