Jquery plugins 调用插件的内部函数
这是我的插件Jquery plugins 调用插件的内部函数,jquery-plugins,Jquery Plugins,这是我的插件 (function($){ $.fn.myPlugin = function(options){ var defaults = { width: 800 }; var defaults = $.extend(defaults, options); var self = this; function init(obj){ /*Initiali
(function($){
$.fn.myPlugin = function(options){
var defaults = {
width: 800
};
var defaults = $.extend(defaults, options);
var self = this;
function init(obj){
/*Initialize object*/
self.myPlugin.doAnimation(600,400);
}
$.fn.myPlugin.doAnimation = function(lV, rV){
/*Doing some animation work*/
}
return this.each(function(options){
init(this);
});
}
})(jQuery);
我正在这样努力
var t = $('#id1').myPlugin();
t.doAnimation(); //getting error here, t.doAnimation is not a function
你不能。你没有返回插件。您将返回带有匹配元素的jQuery对象(您可能应该这样做)。
测试
函数对myPlugin
函数是私有的
要针对jQuery对象调用方法,需要像对myPlugin()
那样扩展jQuery,如下所示:
function($){
$.fn.myPlugin = function(options) {
...
}
$.fn.testing = function(options) {
...
}
})(jQuery);
当然,这将与原始插件完全分离
我不知道你的插件是做什么的,但是如果你需要在每个元素的基础上在插件之间共享一些数据,你可以使用jQuery的
.data()
方法。你不能。你没有返回插件。您将返回带有匹配元素的jQuery对象(您可能应该这样做)。测试
函数对myPlugin
函数是私有的
要针对jQuery对象调用方法,需要像对myPlugin()
那样扩展jQuery,如下所示:
function($){
$.fn.myPlugin = function(options) {
...
}
$.fn.testing = function(options) {
...
}
})(jQuery);
当然,这将与原始插件完全分离
我不知道你的插件是做什么的,但是如果你需要在每个元素的基础上在插件之间共享一些数据,你可能会使用jQuery的
.data()
方法。作为这里的旁注,你不应该包装这个,而应该返回这个。每个(函数(){
就足够了,它已经是一个jQuery对象了。作为这里的旁注,您不应该将这个
包装起来,只需返回这个。每个(函数(){
就足够了,它已经是一个jQuery对象了。不,我必须执行一个操作。这个操作可能随时都需要。我该怎么做?@coure06-你能简要描述一下这个操作吗?它需要成为myPlugin
的一部分有什么要求?@patrick dw:我可能错了,但我相信他希望在插件的命名空间中有一个方法,所以他可能想要$.fn.myPlugin.testing=function(…){…}。这不会使jQuery的命名空间变得混乱,同时使该方法可以从外部访问。@Thomas-可能是。我不完全确定OP的目的是什么。我正在制作一些内容的动画。动画是基于要传递给该方法的一些值。不,我必须执行一个操作。这个操作可能随时都需要。我该怎么办?@coure06-可能您简要描述了该操作?它需要成为myPlugin
的一部分的要求是什么?@patrick dw:我可能错了,但我相信他希望在插件的名称空间中有一个方法,所以他可能想要$.fn.myPlugin.testing=function(…){…}。这不会使jQuery的命名空间变得混乱,同时使该方法可以从外部访问。@Thomas-可能是。我不完全确定OP的目的是什么。我正在制作一些内容的动画。该动画基于要传递给该方法的一些值。