我有以下代码
$(".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/