2013-03-18 38 views
-1

我用click事件上的錶行這樣的綁定:簡單的jQuery事件綁定不工作了

$('#example tbody > tr').on('click', function() { 
    console.log("i clicked on a row"); 
}); 

但它不工作了。我重新嘗試從1.8.0到1.9.1(最新)的jQuery,它什麼也沒做。我檢查它是否是twitter-bootstrap(從bootstrapcdn中檢索到):從2.1.0到2.3.1沒有任何改變。

我的測試配置是FireFox/Chrome的最新版本。該網站在symfony2上運行,使用jQuery plus twitter bootstrap和Datatables plugins/css。

所以,問題:

  1. 如何調試?
  2. 任何解決方案?
+1

你是替換/移動行或添加新行後事件被綁定?你是否在等待文檔準備好綁定代碼? – 2013-03-18 14:46:18

+0

確保選擇器返回一個值。以編程方式觸發點擊事件。使用.click() – adamb 2013-03-18 14:50:17

回答

1

調用的正確的方式委託on事件被它..delegating到最近的靜態元素..

試試這個

$(function(){ //incase you missed the doc.ready 
    $('#example tbody').on('click','tr', function() { 
    console.log("i clicked on a row"); 
    }); 
}); 

$(document).on('click','#example tbody tr', function() { 
    console.log("i clicked on a row"); 
}); 

第一on是更好,更快,然後第二個..只是當事件被稱爲..元素在哪裏c舔被委託需要在文件中出現..

+0

確切。我進一步檢查了jquery文檔。我在切換到新的jQuery版本之前使用.live(.live被折舊),看起來我讀得太快了。謝謝:) – user1254498 2013-03-18 14:53:45

+0

歡迎..快樂編碼..很高興它幫助.. :) – bipen 2013-03-18 14:54:40