我有一个人们可以删除记录的表单;
<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();
如果用户点击取消,则不会发生任何事情。如果他们单击“是” - 则处理链接并删除记录。这是按预期工作的。
现在不是关注链接(当用户点击'是'时),我想发出一个ajax请求:
$('.confirm-action').click(function(event) {
event.preventDefault();
$.ajax({
// Ajax stuff here
});
});
$(".confirm-action").popConfirm();
问题是当我尝试这个时,除了event
是null
之外,函数在预期时以正确的顺序触发,因此脚本失败。
当preventDefault()
为event
时,我如何“null
”和/或手动获取event
以阻止浏览器跟踪该链接?< / p>
答案 0 :(得分:2)
正如评论中所指出的那样,该插件非常糟糕,可以使用_data(events)
IE播放jQuery的内部事件管理。
如果您不关心用户界面,我建议您使用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?'
});