我有一个表单,人们可以在其中删除记录;
<a href="/delete/1" class="confirm-action">Delete Record 1</a>
<a href="/delete/2" class="confirm-action">Delete Record 2</a>
<a href="/delete/3" class="confirm-action">Delete Record 3</a>
为了确保他们确定,我使用了一个“你确定吗”确认脚本 ( Popconfirm ),它提供了一个漂亮的小弹出确认。
$(".confirm-action").popConfirm();
如果用户点击取消,什么也不会发生。如果他们单击"is"- 将处理链接并删除记录。这是按预期工作的。
现在我不想点击链接(当用户单击"is"时),而是想触发一个 ajax 请求:
$('.confirm-action').click(function(event) {
event.preventDefault();
$.ajax({
// Ajax stuff here
});
});
$(".confirm-action").popConfirm();
问题是当我尝试这个时,函数按预期的正确顺序触发,除了 event
是 null
,所以脚本失败。
当 event
为 null
时,如何“preventDefault()
”,和/或手动获取 event
以防止浏览器跟踪该链接?
最佳答案
如评论中所述,该插件很糟糕,并且使用 _data(events)
IE 使用 jQuery 的内部事件管理。
如果您不关心 UI,我建议您使用 SO 中使用的普通 confirm()
。
我在输入这个答案时为你创建了这个:
$.fn.nativeConfirm = function (options) {
return this.click(function () {
var bool = confirm(options.text);
bool ? options.yes.call(this) : options.no.call(this);
});
}
例子:
$('a').nativeConfirm({
yes: function(){
alert('yes');
},
no:function(){
alert('no');
},
text: 'Seriously?'
});
关于javascript - 函数完成后获取事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23969791/