我正在构建一个 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 传递给公共方法。正如我所评论的,控制台仅输出“this”作为整个插件,而不是 $myPluginElement。像这样
function (options) {
var opts = $.extend({}, $.fn.ajDialogue.defaults, options);
return this.each(function () {
var $this = $(this);
$.fn.ajDialogue.show();
});
}
我是不是想错了,我需要做些什么才能拥有将元素发送出去的公共方法?
谢谢!