0

I'm having trouble here connecting interrupts to table elements.

It seems that clicking "Delete cell" or "Open helper" should fire one of the handlers, but nothing happens. The Open helper td has two chances to fire a handler, once for the row it's in and once for the td it's in.

Does anyone see the problem?

Thanks.

The jsfiddle is perfectly clear but the forum wants code if there's a jsfiddle link, so here:

$(document).on('click','tr.deleteCell', function(event) {
  alert("deleting cell");
});
4

2 回答 2

3

jQueryon直到 1.7 版才引入,而您的小提琴源 1.6.2。 请参阅文档

如果您将 jQuery 更改为 1.7+ 版本,则单击处理程序tr.deleteCell将起作用。

其他两个处理程序应用不正确。他们都在寻找.td,这将是一个具有“td”类的元素,不一定是 td 元素。

于 2013-05-06T00:33:39.310 回答
2

您需要升级您的Jquery 以支持. 除此之外,还有一些选择器问题。

演示

.tr.openHelper不需要在 tr 前面加一个点,类似地.td.openh

如果您升级 jquery,这应该可以工作。

$(document).on('click', 'tr.deleteCell', function (event) {
    alert("deleting cell");
});

$(document).on('click', 'tr.openHelper', function (event) {
    alert("opening helper");
});

$(document).on('click', 'td.openh', function (event) {
    alert("opening helper from td");
});

使用您的 jquery 版本,您应该使用live或仅使用click事件

演示

$('tr.deleteCell').live('click',function (event) {
    alert("deleting cell");
});

$('tr.openHelper').live('click',  function (event) {
    alert("opening helper");
});

$('td.openh').live('click', function (event) {
    alert("opening helper from td");
});
于 2013-05-06T00:35:18.367 回答