Что касается виджета jquery ui factory...
Каков наилучший способ иметь переменную статического значения переменной/класса, которая является общей для всех экземпляров?
например.
$.widget("ui.staticTest", { staticVar:'unchanged', test: function(a){ if(a){ this.staticVar= a; } alert(JSON.stringify(this.staticVar)); } }); $('#test').staticTest(); $('#parent').staticTest(); $('#test').staticTest('test','changed'); $('#parent').staticTest('test');
в приведенном выше примере, если staticVar был static, $('# parent'). staticTest ('test'); будет предупреждать "изменено", но вместо этого он предупреждает "без изменений".
(этот код находится на jsfiddle, если вы хотите сыграть: http://jsfiddle.net/alzclarke/Sx8pJ/)
Решения, которые я могу себе представить, уродливы:
1) $('body'). data ('sharedVariable', myData) - это не похоже на хорошую практику, что, если кто-то или что-то очистит совокупность данных 2) храните его в пространстве имен прототипов, например. = $.ui.staticTest.prototype.staticVar = myData; это также вызывает сигнальные колокола