cómo declarar una variable estática / clase en un widget de fábrica de widgets de jquery ui
En cuanto a la fábrica de widgets de jquery ui ...
Cuál es la mejor manera de tener una variable estática / variable de nivel de clase que se comparta entre todas las instancias?
p.ej
$.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');
en lo anterior, si staticVar fuera estático, $ ('# parent'). staticTest ('test'); alertaría 'cambiado' pero en su lugar alerta 'sin cambios'.
(este código está en jsfiddle si quieres jugar:http: //jsfiddle.net/alzclarke/Sx8pJ)
Las soluciones que puedo pensar de mí mismo son feas:
1) $ ('body'). Data ('sharedVariable', myData): esto no parece una buena práctica, ¿qué pasa si alguien o algo limpia el cuerpo de datos? 2) almacénelo en el espacio de nombre del prototipo, por ejemplo = $ .ui.staticTest.prototype.staticVar = myData; esto también suena las alarmas