1

私は自分で使用する簡単な jQuery プラグインを作成しようとしています (そして、この種のことを行うための jQuery の公式プラグインが既にあることは知っていますが、私は自分のものを好みます)。私はそれを基本的にコード化しました。どうすればよいかわからない唯一の問題は、どのボタンがクリックされたかを検出し、それに基づいて、プラグインを介して提供される対応する関数を呼び出すことです。これを行う最善の方法は何ですか?

これまでの私のコードは次のとおりです。

(function($){
$.fn.extend({

    confirmDialog: function(options) {

        var defaults = {
           titleText: "Confirmation",
           bodyText: "Are you sure you want to delete this?",
           confirmButtonText: "Delete",
           confirmAction: function(){},
           cancelAction: function(){},
        };

        var options = $.extend(defaults, options);

        return this.each(function() {

    $('<div class="confirmation-box-wrapper"><div class="confirmation-box"><div class="confirmation-title">'+options.titleText+'</div><div class="confirmation-message">'+options.bodyText+'</div><div class="options"><a class="buttons cancel">Cancel</a><a class="buttons confirmation">'+options.confirmButtonText+'</a></div></div></div>').appendTo('body');  



        });
    }
});
})(jQuery);

したがって、使用法は次のようになると予想されます。

 $(".elementToDelete").confirmDialog({
      confirmAction: function(){ alert("Deleted"); },
      cancelAction: function(){ alert("Cancelled"); }

  })
4

1 に答える 1

2

その拡張機能のボタンをバインドする必要があります。http://jsfiddle.net/4mjBb/

var wrapper=$('<div class="confirmation-box-wrapper"... ...')appendTo('body'); 

wrapper.find('.confirmation').on('click', function(){
    if (typeof options.confirmAction=='function') options.confirmAction();

});
wrapper.find('.cancel').on('click', function(){
    if (typeof options.cancelAction=='function') options.cancelAction();
});
于 2012-11-24T04:53:17.663 に答える