Javascript 可以使用jQuery Mobile动态创建元素吗?

Javascript 可以使用jQuery Mobile动态创建元素吗?,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我有一个使用jQuery(以及各种jQuery UI工具)构建的应用程序 出于某种原因,我不得不将其移植到智能手机/平板电脑上,并决定使用jQuery Mobile(以尽量减少更改次数) 在我的香草应用程序中,我根据用户交互动态创建了页面的一些元素 例如,可以这样创建一个滑块(p是一个具有一组参数的对象): 函数createSlider(p){ 返回$(“”){ “id”:p.id, “阶级”:p.divClass, }).滑块({ “方向”:p.align, “min”:p.constrain

我有一个使用jQuery(以及各种jQuery UI工具)构建的应用程序

出于某种原因,我不得不将其移植到智能手机/平板电脑上,并决定使用jQuery Mobile(以尽量减少更改次数)

在我的香草应用程序中,我根据用户交互动态创建了页面的一些元素

例如,可以这样创建一个滑块(p是一个具有一组参数的对象):

函数createSlider(p){
返回$(“”){
“id”:p.id,
“阶级”:p.divClass,
}).滑块({
“方向”:p.align,
“min”:p.constraint.min,
“最大”:p.constraint.max,
“步骤”:p.step,
“价值”:p.curVal,
“动画”:“正常”
/*还有一些事件处理,但这并不重要*/
});
}
它将产生一个好看的滑块。现在看来:

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,
    });   
}
函数createSlider(p){
返回$(“”){
“id”:p.id,
“阶级”:p.divClass,
“min”:p.constraint.min,
“最大”:p.constraint.max,
“步骤”:p.step,
“价值”:p.curVal,
});   
}
但由于它是动态创建的,jQuery Mobile在页面加载时所做的所有事情都不是在它上面完成的

有没有一种方法可以在不在html中写入滑块的情况下强制进行初始化

谢谢

编辑:我在中发现,可以使用
container.trigger(“创建”)来实现它
然而,这还不起作用


EDIT2:确定创建是解决方案。

尝试在要添加内容的容器上调用
.page()
。或者,将
.page()
添加到您返回的内容也可能有效。

根据文档(请参见问题中的编辑),在包含元素上使用
触发器(“创建”)

要使其工作,您还需要记住范围是一个输入类型,而不是一个标记

工作解决方案:

function createSlider(){
    return $("<input/>",{
           "type":"range",
           "id":"sl",
           "min":0,
           "max":15,
           "step":1,
           "value":1,
    });   
}

function appendSlider(){
    $("#yourdiv").append(createSlider()).trigger("create");
}
函数createSlider(){
返回$(“”){
“类型”:“范围”,
“id”:“sl”,
“min”:0,
“最大”:15,
"步骤":一,,
“价值”:1,
});   
}
函数appendSlider(){
$(“#yourdiv”).append(createSlider()).trigger(“create”);
}

作为旁注,jQuery mobile的文档缺少搜索选项。

这不起作用。我还尝试了触发(“创建”);没有任何成功。这对我不起作用。如果我使用.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");
}