jQuery内联确认(删除) - 实现问题

时间:2013-10-31 16:09:28

标签: javascript jquery

我正在尝试为jquery实现这个内联删除确认插件。以下是示例代码:

//sample code taken from plugin on GitHub: 
//https://github.com/fredwu/jquery-inline-confirmation
$("a.delete").inlineConfirmation({
  confirm: "<a href='#' class='confirm-yes'>Yes</a>",
  cancel: "<a href='#' class='confirm-no'>No</a>",
  separator: " | ",
  reverse: true,
  bindsOnEvent: "hover",
  confirmCallback: function(action) {
    action.parent().fadeIn();
  }
});

将其附加到任何选择器将显示删除或取消按钮,但我需要在单击时显示此选项。

所以我原来的代码就是这样:

jQuery( document ).ready( function( $ ) { 
            $( '#mytable button').click( function( event ) { 
            event.preventDefault(); 


            if ( ! confirm( 'Are you sure you want to continue' ) ) 
                    return; 

    var $button = $(this);
    var nonce = $( this ).attr('data-nonce');
    var rowID = $( this ).attr('value'); 
    var file = $( this ).attr('file'); 

            var data = { }

            $.post( 
                    ajaxurl, 
                    data,
                    function ( response ) { });
        }); 
}); 

该插件允许'confirmCallback',我需要在确认点击后执行我的代码,而不是像目前那样立即执行。我还在学习jQuery,所以这可能是一个简单的问题。只需要知道如何自定义这样的东西:

jQuery( document ).ready( function( $ ) { 
$( '#mytable button').click( function( event ) { 
$(this).inlineConfirmation({
confirmCallback: (?? WHAT DO I PUT HERE??)
});

如果确认则运行我的代码(这将是confirmCallback。我该怎么做?     .post ...等...

1 个答案:

答案 0 :(得分:1)

  

将其附加到任何选择器将显示删除或取消按钮,但我需要在单击时显示此选项。

改变这个:

bindsOnEvent: "hover",

对此:(虽然文档说明这是默认的)

bindsOnEvent: "click",

并添加一个回调函数,如下所示:

confirmCallback: function (a) {
     // write your code here.
}
总而言之:

jQuery(document).ready(function($) {
    $('#mytable button').inlineConfirmation({
         bindsOnEvent: "click",
         confirmCallback: function($button) {
             var nonce = $button.attr('data-nonce');
             var rowID = $button.attr('value'); 
             var file = $button.attr('file'); 

             var data = {};

             $.post( 
                ajaxurl, 
                data,
                function ( response ) { }
             );
         }
     });
});