功能完成后获取事件

时间:2014-05-31 11:56:28

标签: javascript jquery

我有一个人们可以删除记录的表单;

<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();

问题是当我尝试这个时,除了eventnull之外,函数在预期时以正确的顺序触发,因此脚本失败。

preventDefault()event时,我如何“null”和/或手动获取event以阻止浏览器跟踪该链接?< / p>

修改:JSFiddle showing the problem.

1 个答案:

答案 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?'
});