2013-05-03 54 views
4

如何創建可觸發JavaScript函數的可單擊網格單元格?可點擊單元格不調用onClick函數

我提供了這個作爲列 模板的模板:

'<a href="\\#" class="group-details-popup">#=groupRefId#</a>' 

,然後加入這樣的功能來搜索類,並添加一個點擊監聽器:

$(".group-details-popup", grid.tbody).on("click", function (e) { 
     // do something 
}); 

但我當我點擊單元格時,函數永遠不會被調用;單元格中的值確實顯示爲鏈接,但沒有事件被觸發。

+0

您是否在頁面上動態地向網格添加行? – PSL 2013-05-03 21:43:08

+0

一旦用戶從頂層下拉框中進行選擇,就會獲取數據 – 2013-05-06 01:14:16

+2

試試這個'$(grid.tbody).on(「click」,「.group-details-popup」,function(e){' – PSL 2013-05-06 01:23:20

回答

0

我的猜測是,當您嘗試訪問grid.tbody時出現錯誤,因爲它未定義。你需要把它包在引號:

$(".group-details-popup", ".grid tbody").on("click", function (e) { 
     // do something 
}); 

我認爲grid以上是一類,你想處理程序綁定到類中tbody元素。否則,你的jQuery是罰款(假設你已經適當地包括它):

http://jsfiddle.net/GwYcf/

+0

嗨,感謝您的建議,但沒有奏效,網格組件很好,因爲我可以在調試器中看到它,也相應的grid.tbody外觀好。 – 2013-05-06 01:16:02

0

試試這個..

$("a.group-details-popup").click(function() { 
    //your code here 
} 
0

這樣做,這樣:

$(".group-details-popup", grid.tbody).on("click", function (e) { 
     // do something 
}); 

這是相當於:

$(grid.tbody).find(".group-details-popup").on("click", function (e) { 
     // do something 
}); 

將grip事件處理程序附加到grip.tbody jQuery元素引用中的現有類「group-details-popup」。

爲了附加到一個尚不存在的元素,您需要將該事件處理程序附加到該元素的某個包裝中 - 一旦添加該元素就會保留該元素。一種選擇是「文檔」,但是如果您可以更精確地獲取某些內容,則文檔不是所需的容器,以便事件處理程序不必處理整個DOM以查找目標。你似乎有一個元素包裝,所以使用它。

$(grid.tbody).on("click", ".group-details-popup", function (e) { 
     // do something 
}); 
相關問題