Jquery插件使用原型从方法访问var

时间:2013-04-23 13:29:34

标签: javascript jquery plugins prototype

我使用http://fr.jqueryboilerplate.com/

获得以下javascript代码
;(function ($, window, document, undefined) {
  var pluginName = "PluginName",
    defaults = {
      overlay: {
        BgColor: "#000",
        opacity: "0.6"
      }
    };
  function Plugin(element, options) {
    this.element = $(element);
    this.options = $.extend({}, defaults, options);
    this._defaults = defaults;
    this._name = pluginName;
    this.init();
  }
  Plugin.prototype = {
    init: function () {
      console.log("init");
      var overlay = jQuery("<div/>", {
        id: "ModalOverlay",
        click: function () {
          Plugin.prototype.Mymethod();
        }
      });
    },
    Mymethod: function () {}
  };

任何人都可以教我如何访问变量,

function Plugin(){}

来自

Mymethod: function() {}

也许是这样的:

添加商店对象

Plugin.prototype = {
  store: {
    _overlay: null
  }

进入init函数

Plugin.prototype.store._overlay = overlay;

然后访问它:

Mymethod: function () {
  console.log(Plugin.prototype.store._overlay);
},

我很确定这是有效的,但我觉得这很脏。

1 个答案:

答案 0 :(得分:0)

试试这段代码,我还没有测试过。但值得一试。如果不起作用,请告诉我,我会删除。

Plugin.prototype = {
init: function () {
  var myThis=this;
  console.log("init");
  var overlay = jQuery("<div/>", {
    id: "ModalOverlay",
    click: function () {
      myThis.Mymethod();
    }
  });
},
Mymethod: function () {
     alert(this._name);     
     alert(this.options);
     alert(this.options.overlay);
     console.log(this.options.overlay);

}
};