javascript - 如何停止传播?

标签 javascript jquery html

我有以下代码

$(".btnClose").click(function (e) {
    alert('a');
    e.stopPropagation();
    e.preventDefault();

    var targetUrl = $(this).attr("href");
    $('#modal-a').modal();
    $("#modal-a .btn-danger").click(function () {
        window.location.href = targetUrl;
    });
});


$('.clickable-row').click(function () {
    alert('b');
    var formId = ...;
    var locked = ...

    if (locked == false) {
        document.location = "a/" + formId;
    }
    else {
        document.location = "b/" + formId;
    }
});
<tr class="clickable-row">
    <td><a class="btnClose" href="/c?FormId=40">Close</a></td>
</tr>

问题是,当我单击任何带有 btnClose 类的按钮时,它会提醒“a”,显示模式窗口,等待模式窗口答案。如果我回答取消,那么它将显示“b”并进行不需要的重定向。

我发现停止传播在这种情况下不起作用,但我不知道为什么。

最佳答案

有一个简单的方法可以解决这个问题,只需检查目标即可

$('.clickable-row').click(function (e) {

    if ( $(e.target).hasClass('btnClose') ) return;


    // rest of the code
});

关于javascript - 如何停止传播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25363546/

相关文章:

javascript - 如何使用 systemjs 在最小的 Angular 2 应用程序中加载 RxJS?

javascript - 将 JS 数组 UNIX 日期整数转换为 JS Date 对象

javascript - 防止整页在 load() 时向上滚动

jquery - 如何使用 Handlebars 模板显示json对象键和值?

jquery - 如何将 Django 日期格式更改为 dd/mm/yy?

javascript - 如何让网页文字下雪?

php - 如何按票数对选项进行排序

javascript - jQuery 在 DOM 中使用索引来提高性能吗?

JavaScript 菜单下拉 onClick 不起作用

javascript - Canvas 在一种环境中绘制,而不是在另一种环境中绘制