0

我有以下使用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
  }

进入初始化函数

Plugin.prototype.store._overlay = overlay;

然后像这样访问它:

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

我很确定这是有效的,但我认为这很脏。

4

1 回答 1

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

}
};
于 2013-04-23T14:55:11.317 回答