在jquery插件中调用函数

时间:2012-12-07 23:43:53

标签: javascript jquery

我正在尝试获取jquery插件的对象我正在使用。我希望最终能够为插件添加功能以满足我的需求。我目前在调用插件中定义的函数时遇到问题。这是我所拥有的代码的骨架:

;(function($) {
      $.fn.myPlugin = function(o) {
                    .//Implementations here
                    .
                    .
            var Ex =  function(e){
                    //implementations here
            };

      }; 

})(jQuery);

我想要这个函数的原因是因为我想访问定义的一些变量。我希望能够从我的html文件中调用函数Ex,但到目前为止我尝试过的任何函数都没有用。我尝试过的一个例子是:

$.fn.myPlugin.Ex("x");

任何地方都没有退货声明。我在javascript或jquery上并不擅长,但我正在努力学习。感谢你解释我做错的任何帮助。

1 个答案:

答案 0 :(得分:1)

您的插件设计模式错误。

为了达到你想要的效果,你可以使用这个常见的:

;(function($){
  var methods = {
     init: function() {
       //stuff
     },
     function1: function() {
       //stuff
     },
     function2: function(opt) {
       //stuff
     }
  };
  $.fn.myPlugin= 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);
    } 
  };
})(jQuery);

有了这个结构:

$.fn.myPlugin();会致电init()

$.fn.myPlugin("function1");会致电function1()

$.fn.myPlugin("function2",option_exemple);会致电function2(opt)

免责声明:我经常使用它,但它不是我的。不记得我找到它的地方*。