我一直在阅读很多关于为我的插件使用jQuery.Widget Factory的优势。被吹捧的功能之一是 jQuery.widget 如何为您的小部件创建命名空间。这很有吸引力,因为我可以(自然地)在 jQuery 上下文中维护我当前的命名空间。
问题:
我不断收到“$(".myWidget").namespace.newWay is not a function”错误。
对于以下元素...
<div class="myWidget"></div>
这个示例代码有效:
虽然很好......这不是我想要实现的......因为我仍然希望我的命名空间得到尊重。
var workingVersion = {
_init: function () { /* Do Something*/ }
};
$.widget("ui.workingVersion", workingVersion);
$(document).ready(function () {
$('.myWidget').workingVersion();
});
但是,我的代码失败:
var namespace = namespace || { };
;namespace.newWay = (function ($, window, document, undefined) {
return function (options) {
var self = this;
this._create = function () {
// Do something
},
this._init = function() {
// Do something
},
this.publicFunction = function () {
// Do something
};
};
})(jQuery, window, document);
$(document).ready(function () {
$.widget("ui.namespace.newWay", namespace.newWay); //<-- Namespace does get appended
$('.myWidget').namespace.newWay({ type: 'testing' }); //<-- But still fails here
});
我的问题是:
为什么会失败?
相关阅读: