我想創建一個Jquery插件,它保持鏈接性並具有Jquery Plugins/Authoring中指定的公共方法。其複雜性在於它試圖維護某些我想要公共方法使用的變量。如何使用插件方法創建Jquery插件並維護鏈連接性?
這是我的jsfiddle:http://jsfiddle.net/badmash69/9cqcj/2/
javascript code :
(function($){
var methods = {
init : function(options) {
this.options = options;
}
, add_that: function (elem) {
$(this).append(elem);
return (this);
}
, show_parent: function(){
// this is a simple test to see if the plugin vars are accessible
alert("parent id=" + $(this).parentId)
}
, add_this: function (elem) {
return methods.add_that.apply(this,elem);
}
};
$.fn.test = function (method) {
var args = method;
var argss = Array.prototype.slice.call(args, 1);
return this.each(function(){
var $this = $(this);
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.test');
}
var element = $(this);
var parentId= element.parent().attr("id")
});
};
})(jQuery);
$('#test').test('add_this',$('<div>Hello World d</div>'));
$('#test').test('show_parent');
HTML代碼
<div id="holder">
<div id="test"></div>
</div>
我無法弄清楚什麼,我摻雜錯在這裏。 我該如何使它工作?我非常感謝任何幫助。