内部にいくつかのパブリックメソッドを持つjQueryプラグインを構築しています。これが今の様子です。
(function ($) {
$.fn.ajDialogue = function (options) {
var opts = $.extend({}, $.fn.ajDialogue.defaults, options);
return this.each(function () {
var $this = $(this);
$.fn.ajDialogue.show();
});
};
$.fn.ajDialogue.show = function () {
// code
};
$.fn.ajDialogue.destroy = function () {
console.log(this);
// 'this' is this plugin
};
$.fn.ajDialogue.defaults = {
width: 100,
height: 100,
onShow: function () { },
onDestroy: function () { }
};
})(jQuery);
このようにプラグインを宣言して実行していますが、これは正常に動作します。
var $myPluginElement = $('body').ajDialogue();
しかし、私がこれを行うとき
$myPluginElement.ajDialogue.destroy();
$myPluginElement が public メソッドに渡されません。コメントしたように、コンソールは $myPluginElement ではなく、プラグイン全体として「this」のみを出力します。このような
function (options) {
var opts = $.extend({}, $.fn.ajDialogue.defaults, options);
return this.each(function () {
var $this = $(this);
$.fn.ajDialogue.show();
});
}
私は間違って考えていますか?要素を送信するパブリックメソッドを使用できるようにするにはどうすればよいですか?
ありがとう!