Tengo una aplicación creada usando jQuery (y usando varias herramientas jQuery-UI).¿Es posible crear elementos sobre la marcha con jQuery Mobile?
Por alguna razón, tengo que portarlo a smartphones/tablet PC, y decidió utilizar jQuery Mobile para que (con el fin de minimizar el número de cambios).
En mi aplicación de vanilla, creé algunos elementos de la página sobre la marcha, dependiendo de las interacciones del usuario.
Por ejemplo, un control deslizante se podrían crear de esa manera (p es un objeto con un montón de params):
function createSlider(p){
return $("<div/>",{
"id":p.id,
"class":p.divClass,
}).slider({
"orientation": p.align,
"min":p.constraint.min,
"max":p.constraint.max,
"step":p.step,
"value":p.curVal,
"animate":"normal"
/*and some event handling here, but it doesn't matter*/
});
}
y producirá un control deslizante de aspecto agradable. Ahora que parece:
function createSlider(p){
return $("<range/>",{
"id":p.id,
"class":p.divClass,
"min":p.constraint.min,
"max":p.constraint.max,
"step":p.step,
"value":p.curVal,
});
}
Pero ya que está creado sobre la marcha, todo lo hecho por jQuery Mobile en la carga de la página no se hace en él.
¿Hay alguna manera de forzar esa inicialización sin escribir el control deslizante en el html?
Gracias.
EDITAR: He encontrado en el doc que podría lograrse utilizando container.trigger("create");
Sin embargo esto no funciona todavía.
EDIT2: Ok create fue la solución.
Esto no funciona para mí. Si uso el .trigger ("crear"), las listas desplegables () se ven extrañas y se comportan inesperadamente. –
Ted