所以我有一个按钮
<input id="expandButton" type="submit" value="Expand" class="loadWindow"/>
我附加了两个事件处理程序。
function confirmContinue() {
return confirm("Do you want to expand window, might reload some information?");
}
$("input.loadWindow").click(function(event) {
showProcessingWindow(event);
}
$("#expandButton").click(function(event) {
var result = confirmContinue();
if (!result) {
event.preventDefault();
event.stopPropagaton();
}
}
如果他们说取消,我想阻止“input.loadWindow”点击事件。
这就是现在正在发生的事情。 单击按钮 - &gt;确认火灾 - &gt;我点击取消 - &gt;显示处理窗口仍然会触发。
我想这样 单击按钮 - &gt;确认火灾 - &gt;我点击取消 - &gt;没做什么。
答案 0 :(得分:2)
在这种情况下, event.stopImmediatePropagation() 似乎有用。
$("#expandButton").click(function(event) {
var result = confirmContinue();
if (!result) {
event.preventDefault();
event.stopImmediatePropagation();
}
}
小提琴演示 - http://jsfiddle.net/w2vwn35x/1/
答案 1 :(得分:0)
试试这个:
$("#expandButton").click(function(event) {
if(confirm('Do you want to expand window, might reload some information?')){
// call your function here
}else{
return false;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="expandButton" type="submit" value="Expand" class="loadWindow"/>
答案 2 :(得分:0)
或者,使用旗帜。
var doShowWindow = true;
$("#expandButton").click(function(event) {
var result = confirmContinue();
if (!result) {
doShowWindow = false;
}
});
$("input.loadWindow").click(function(event) {
if(doShowWindow){
alert(1);
}
doShowWindow = true;
});