我有一个具有以下结构的表格:
我的jquery代码如下:
- table#Main
- tbody
- tr.Row
- td
- input.EditRow
$("table#Main > tbody > tr.Row").live("click", function (e) {
RowClick($(this));
});
$(".EditRow").live("click", function (e) {
EditRow($(this));
});
我的问题是,如果我点击.EditRow按钮并调用EditRow函数,则会立即调用RowClick函数。
在网站上做了一些研究后,我发现其他人通过使用以下任一命令来解决此问题。
e.preventDefault();
e.stopPropagation();
我尝试了不同的组合,但无法弄清楚两个函数的问题。有人能告诉我错在哪里吗?
谢谢!<3
1.4.3
或更高版本,则使用e.stopPropagation()
对我有效。 示例。 点击链接,您将只收到一个警报。将左侧库切换为使用1.4.2,您将获得两个警报。 - user113716.live()
的每个选择器,以查看调用e.stopPropagation
的选择器是否是其子级。这似乎非常低效。编辑:或者也许情况没有那么糟糕。我想它只需要在从e.target
到document
的链中停止传播与.live()
选择器匹配的那些元素。谁知道呢。 - user113716contains()
。太好了!我同意有太多.live()
监听器是不好的。当然,在我的书中,一个.live()
就太多了。;o) - user113716