【问题标题】:click event fires twice for button inside link链接内的按钮单击事件触发两次
【发布时间】:2013-04-05 05:10:52
【问题描述】:

我正在使用引导程序来创建堆叠药丸导航控件。控件中的每个条目都是一个链接,并且该链接元素还包含一个按钮。可以单击该按钮来删除列表条目,或者可以单击列表条目本身来对其执行某些操作。

每个列表条目的 html 如下所示:

<li>
    <a href="#" id="launch_me">Some title
        <button class="my-class" id="remove_me">
             <i class="icon-remove"></i>
        </button>

    </a>
</li>

这些项目是根据服务器的响应动态添加的。 jquery 然后通过以下方式添加点击处理程序:

$("#launch_me").click((function (info) {
    return function () {
        launch(info);
    };
})(myInfo));

$("#remove_me").click((function (info) {
    return function () {
        remove(info);
    };
})(myInfo));

当我单击按钮删除条目时,会触发“删除”单击例程,然后是启动例程。

我怎样才能使单击删除按钮只会导致删除单击处理程序运行?

谢谢!

【问题讨论】:

标签: javascript jquery html ajax twitter-bootstrap


【解决方案1】:

试试这个:

$("#remove_me").click((function (info) {
    return function (e) {
        e.stopPropagation();
        remove(info);
    };
})(myInfo));

http://api.jquery.com/event.stopPropagation/

这将防止“Remove Me”按钮的click 事件冒泡到其父“Launch Me”容器并执行其click 处理程序。

你之前的:http://jsfiddle.net/HVExt/

我的追随者:http://jsfiddle.net/HVExt/1/

【讨论】:

    【解决方案2】:

    MyInfo 对我来说看起来很狡猾。我会跳过它并添加;反而。但是我不知道你的其余代码......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      相关资源
      最近更新 更多