我有一个像这样定义的插件:
(function( $ ){
var mymethods = {
init: function(opts) {
// do some wild awesome magic
if (opts.drawtablefirst) $(this).drawtable(); // This doesn't actually work of course
},
drawtable: function() {
$(this).empty().append($("<table>")); // Empty table, I know...
}
}
// Trackman table
$.fn.myplugin = function(method) {
if (mymethods[method] ) {
return mymethods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method ) {
return mymethods.init.apply(this, arguments);
}
}
})( jQuery );
我希望能够drawtable
从该方法调用该init
方法,但该方法不起作用。我实例化我的插件主要是:
$("div#container").myplugin({drawtablefirst: true})
但有时我不想通过drawtablefirst
然后手动调用它,例如:
$("div#container").myplugin('drawtable')
配置它的最佳方法是什么是drawtable
可访问的插件方法,但也可以从插件方法本身中调用,例如init
?
此外,访问drawtable
via中的原始元素$(this)
似乎不起作用。那里的正确方法是什么?
谢谢。