我继续提问,previously asked。这是一个太简单的样本:)
有一个插件,现在常用的语法是什么。我想在初始化时创建一个元素,我想从另一个方法访问它。在下面的示例中,我非常深入地说明了它,但是如果我把它放在init
方法之外,open
方法会丢失一个错误,因为它无法找到它。
(我不确定我是否以正确的方式从另一个方式调用这些方法......)
(function($, window, document, undefined) {
var opt = {
text : 'sample'
};
var methods = {
init: function(options) {
var self = $(this);
if (options) {
$.extend(opt,options);
}
return this.each(function () {
var container = $('<div class="container" />');
container.text(opt.text);
$(this).append(container);
$(this).click(function() {
self.pluginName('open');
});
});
},
open: function(args) {
container.text('opened');
},
submit: function(args) {
// call another method...
}
};
jQuery.fn.pluginName = function (method) {
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
}
else if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
}
else {
$.error('Method ' + method + ' does not exist on jQuery.pluginname');
}
};
})(jQuery, window, document);
我想把它称为任何数字元素,如:
$(function() {
$('div').pluginName();
});