javascript - 在 jquery 插件中调用函数

标签 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,但我正在努力学习。感谢任何帮助解释我做错了什么。

最佳答案

你的插件设计模式是错误的。

要实现你想要的,你可以使用这个常见的:

;(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)

免责声明:我经常使用它,但这不是我的。不记得在哪里找到它*。

关于javascript - 在 jquery 插件中调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13772782/

相关文章:

javascript - 如果在 x 秒内发生则忽略函数

javascript - 缩放堆栈条形图后,Flot 返回不正确的 x 值(mm/dd/yy - 日期)

JavaScript - 通过选择框更改更新定价

jquery - 使用 jquery-uidraggable 对可拖动对象进行分组

jquery - Fancybox 发出不需要的同步请求?

javascript - d3图表刷新重复

javascript - 将 GraphQL 模式从非 JS 服务器公开到 JS 客户端

javascript - jquery jcarousel 如何添加控制按钮

javascript - 如何使用 jQuery 在按下 TAB 后重新获得焦点?

javascript - 用于向 iPhone 发送通知的 API 和应用程序?