可单击的单元格不调用onClick函数

时间:2013-05-03 21:06:01

标签: jquery kendo-grid

如何创建可触发JavaScript函数的可单击网格单元?

我提供了此列作为列的模板 模板:

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

然后添加了这样的函数来搜索该类并添加一个单击侦听器:

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

但是当我点击单元格时,我的函数永远不会被调用;单元格中的值确实显示为链接,但不会触发任何事件。

3 个答案:

答案 0 :(得分:0)

我的猜测是,当您尝试访问grid.tbody时收到错误,因为它未定义。你需要用引号括起来:

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

我上面假设grid是一个类,并且您希望将处理程序绑定到该类中的tbody元素。否则,你的jQuery很好(假设你已正确包含它):

http://jsfiddle.net/GwYcf/

答案 1 :(得分:0)

试试这个..

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

答案 2 :(得分:0)

这样做:

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

相当于:

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

将click事件处理程序附加到grip.tbody jQuery元素引用中的现有类“group-details-popup”。

为了附加到一个尚未存在的元素,您需要将事件处理程序附加到该元素的某个包装器 - 一旦添加该元素就会保存该元素。一个选项是“document”,但是如果你可以获得更精确的东西,那么document不是一个理想的容器,这样事件处理程序就不必处理整个DOM来找到目标。你似乎有一个元素包装器,所以使用它。

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