Obtener evento después de la función completa

Tengo un formulario donde la gente puede borrar registros;

Delete Record 1 Delete Record 2 Delete Record 3 

Para asegurarme de que estén seguros, estoy usando una secuencia de comandos de confirmación “¿Estás seguro?” ( Popconfirm ) que proporciona una pequeña confirmación de ventana emergente.

 $(".confirm-action").popConfirm(); 

Si el usuario hace clic en cancelar, no pasa nada. Si hacen clic en ‘sí’, el enlace se procesa y el registro se elimina. Esto está funcionando según lo previsto.

Ahora, en lugar de seguir el enlace (cuando el usuario hace clic en ‘sí’), deseo lanzar una solicitud ajax:

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

El problema es que cuando bash esto, las funciones se activan en el orden correcto cuando se espera, excepto que el event es null , por lo que el script falla.

¿Cómo puedo ” preventDefault() ” cuando el event es null y / o obtener manualmente el event para evitar que el navegador siga el enlace?

Edición: JSFiddle mostrando el problema.

Como se señaló en los comentarios, el complemento es horrible y juega con _data(events) IE juega con la gestión interna de eventos de jQuery.

Si no está preocupado por la interfaz de usuario, le sugeriría que utilice la confirm() normal confirm() tal como se usa en SO.

He creado esto para ti mientras escribo esta respuesta:

 $.fn.nativeConfirm = function (options) { return this.click(function () { var bool = confirm(options.text); bool ? options.yes.call(this) : options.no.call(this); }); } 

Ejemplo:

 $('a').nativeConfirm({ yes: function(){ alert('yes'); }, no:function(){ alert('no'); }, text: 'Seriously?' });