我有一个使用 jQuery(并使用各种 jQuery-UI 工具)构建的应用程序。
出于某种原因,我必须将它移植到智能手机/平板电脑上,并决定为此使用 jQuery Mobile(以尽量减少更改次数)。
在我的普通应用中,我根据用户交互动态创建了页面的一些元素。
例如,可以这样创建一个 slider (p 是一个带有一堆参数的对象):
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*/
});
}
它会生成一个漂亮的 slider 。现在看起来像:
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,
});
}
但由于它是动态创建的,所以 jQuery Mobile 在页面加载时所做的所有工作都没有在它上面完成。
有没有办法在不在 html 中编写 slider 的情况下强制进行初始化?
谢谢。
编辑:我在 doc 中找到可以使用 container.trigger("create");
来实现
然而,这还行不通。
EDIT2:好的,创建是解决方案。
最佳答案
根据文档(请参阅问题中的编辑),在包含元素上使用 trigger("create")
是可行的。
要做到这一点,您还需要记住范围是输入类型而不是标签...
工作解决方案:
function createSlider(){
return $("<input/>",{
"type":"range",
"id":"sl",
"min":0,
"max":15,
"step":1,
"value":1,
});
}
function appendSlider(){
$("#yourdiv").append(createSlider()).trigger("create");
}
作为旁注,jQuery Mobile 的文档缺少搜索选项。
关于javascript - 是否可以使用 jQuery Mobile 动态创建元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6957910/