3 jquery factory jquery-ui protected widget
我正在研究jQuery UI Widget,但我遇到了一些问题.这是我实例化插件的方式.
$('#myId0, #myId1').mywidgetname();
Run Code Online (Sandbox Code Playgroud)
这是我的插件代码:
;(function ( $, window, document, undefined ) {
$.widget( "namespace.mywidgetname" , {
_create: function(){
debugger;
this._myPrivateProperty = 2;
....
Run Code Online (Sandbox Code Playgroud)
问题是,当调试器第二次停止时,我已经将this._myPrivateProperty实例化为值2.我认为该小部件将被实例化两次,但事实并非如此.
另外,如果我为每个元素指定不同的选项,如下所示:
$('#myId0').mywidgetname({myVarA: 'someText'});
$('#myId1').mywidgetname({myVarB: 'someText'});
Run Code Online (Sandbox Code Playgroud)
变量this.options对于每个变量都是不同的.现在有人如何将"私人"财产私有化?
谢谢
小智 5
我发现了这个问题.似乎不应该在插件根中定义属性,如下所示:
;(function ( $, window, document, undefined ) {
$.widget( "namespace.mywidgetname" , {
myPrivateVar = {},
_create: function(){
this.myPrivateVar.test = 2;
....
Run Code Online (Sandbox Code Playgroud)
这将保留所有实例的引用.但是你应该在_create方法中声明你的变量.
;(function ( $, window, document, undefined ) {
$.widget( "namespace.mywidgetname" , {
_create: function(){
this.myPrivateVar = {};
this.myPrivateVar.test = 2;
....
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1161 次 |
| 最近记录: |