我想解决以下情况:
我有一个链接,它有一个点击事件(它做了一些 ajax 操作)。单击操作是默认的 Rails,它将执行远程操作(执行 javascript)。当使用以下 html 结构单击 li 元素时,我想在单击事件上调用它:
<li>
<img src="images/img.png" />
<a href="/remote/path" data-remote="true">Link</a>
</li>
点击 li 元素应该触发链接上的点击事件并调用其他一些函数(在 li 元素上设置活动类)。
问题是: 1. 如果我在 li 上绑定 click 事件并在链接上调用 click 事件,会导致死循环 2. 如果我在链接上放置 stopPropagation() ,它不会调用原始函数,这执行远程请求
对此最优雅的解决方案是什么?
这是我目前拥有的jcode:
$(document).ready(function() {
$("#some_list a").click(function(e) {
alert("action on a");
e.stopPropagation();
});
$("#some_list li").click(function(e) {
alert("call some function");
$(this).find('a').trigger("click");
});
});
这不会导致递归循环,但会阻止我想在链接上触发的默认操作(由 rails 或 ujs 库设置)。
我想我必须在链接上的最后一个操作之后更改链接上的点击操作和 stopPropagation() 的顺序?
或者也许有一些更好的解决方案来重组 HTML 并自己调用远程函数?
感谢帮助