我想停止一个事件显示一个模式对话框,如果用户按下是,请执行此事件。event.run() 在 Firefox 中带来错误。
jQuery(element).click(function(event) {
event.preventDefault();
dialog.dialog({
buttons: {
'Ja': function() {
event.run();
},
'Nein': function() {
jQuery(this).dialog('close');
}
}
}).dialog('open');
});
感谢一位朋友和 hashbrown,我设法解决了这个问题。一个事件不能被暂停和说服。如果它被暂停,它将阻塞整个 DOM。尝试:
jQuery(link).click(function(){while(true)});
使用 jQuery 时,可以设置我所做的其他事件参数:
jQuery(element).click(function(event, show_dialog) {
var that = jQuery(this);
if(!show_dialog) {
dialog.dialog({
buttons: {
'Yes': function() {
that.trigger(event.type, [true]);
},
'No': function() {
jQuery(this).dialog('close');
}
}
}).dialog('open');
return false;
} else {
dialog.dialog('close');
return true;
}
});
首先单击 show_dialog 未定义并显示模态对话框。在模态对话框中单击 Yes 会触发 event.type(单击),其中 show_dialog 的附加参数为 true。http://api.jquery.com/trigger/#trigger-eventType-extraParameters
这是不可能的that.trigger(event, [true]);
。我认为之前阻止了导致事件的默认操作。