如何阻止传播?

时间:2014-08-18 12:40:14

标签: 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'并进行不希望的重定向。

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

1 个答案:

答案 0 :(得分:1)

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

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

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


    // rest of the code
});