javascript - 函数完成后获取事件

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

如果用户点击取消,什么也不会发生。如果他们单击"is"- 将处理链接并删除记录。这是按预期工作的。

现在我不想点击链接(当用户单击"is"时),而是想触发一个 ajax 请求:

$('.confirm-action').click(function(event) {
     event.preventDefault();
     $.ajax({
            // Ajax stuff here
      });
});
$(".confirm-action").popConfirm();

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

eventnull 时,如何“preventDefault()”,和/或手动获取 event 以防止浏览器跟踪该链接?

编辑:JSFiddle showing the problem.

最佳答案

如评论中所述,该插件很糟糕,并且使用 _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/

相关文章:

javascript - 如何在 JS 对象中获取父属性?

javascript - 如果没有警觉去 url 否则不要去

javascript - Keith-Wood 日期选择器 onclick(首次单击时不起作用)

javascript - 只报警一次?全功能运行后

javascript - 通过javascript传递变量

javascript - 从服务器到客户端的日期发生变化

javascript - 标记链接的目标

javascript - 如何通过 Chrome Identity 使用登录帐户

加载页面内容时 Jquery 淡入淡出

javascript - 屏幕插件在错误的时间加载类名