Javascript JQuery:添加带有bind/on和trigger函数的确认处理程序
我试图在点击事件的许多链接、按钮或输入中添加一个确认框 我无法使用location.href、submit()或其他特定功能,因为:Javascript JQuery:添加带有bind/on和trigger函数的确认处理程序,javascript,jquery,triggers,bind,confirm,Javascript,Jquery,Triggers,Bind,Confirm,我试图在点击事件的许多链接、按钮或输入中添加一个确认框 我无法使用location.href、submit()或其他特定功能,因为: 例如,location.href在提交按钮上不起作用 例如,location.href不会触发其他绑定处理程序 所以我需要使用的是trigger()函数,它从理论上执行所有处理程序和本机操作。“困难”部分是执行所有处理程序,除了弹出确认框的处理程序 这是我的密码: $('a, button, input[type="submit"]').each(functi
- 例如,location.href在提交按钮上不起作用
- 例如,location.href不会触发其他绑定处理程序
$('a, button, input[type="submit"]').each(function() {
var oButton = $(this);
oButton.on('click.pending', function(oEvent) {
console.log('click !');
oEvent.preventDefault();
var oDialog = $('<div class="dialog-example">[Question] ?</div>').dialog({
buttons: {
Cancel: function() {
console.log('cancelled !');
// Nothing to do
oDialog.dialog('close');
},
Ok: function() {
console.log('confirmed !');
// Trigger the rest of the handlers AND the native action, BUT not this one, so this dialog is not used
// Problem : nothing happens here
oButton.trigger('click.confirmed');
oDialog.dialog('close');
}
}
});
});
});
$('a,按钮,输入[type=“submit”]”)。每个(函数(){
var oButton=$(此项);
oButton.on('click.pending',函数(oEvent){
console.log('click!');
oEvent.preventDefault();
变量oDialog=$(“[问题]?”)。对话框({
按钮:{
取消:函数(){
console.log('cancelled!');
//无事可做
对话框(“关闭”);
},
好的:函数(){
console.log('confirmed!');
//触发其余的处理程序和本机操作,但不触发此操作,因此不使用此对话框
//问题:这里什么都没发生
oButton.trigger('click.confirm');
对话框(“关闭”);
}
}
});
});
});
提前谢谢!;) 您应该尝试:
oButton.off('click.pending').trigger('click').get(0).click();
你能创建一个提琴吗?提琴:在这种情况下,为了代码的“清晰”,我使用了这样的东西:(哦)很好!但是检查只做了一次。我想我需要在你的代码之后重新启动处理程序。单击锚定或提交应该会将用户重定向到新页面或重新加载当前页面,所以通常情况下,你不应该重新绑定事件。也就是说,您仍然可以使用引用的函数,并在触发事件后重新绑定它:没错,anchor或submit应该重定向,但例如,我使用的是Twitter引导选项卡选项卡:。仅当处理程序本身被删除时,我才重新绑定它。