javascript - 是否可以使用 jQuery Mobile 动态创建元素?

标签 javascript jquery jquery-mobile

我有一个使用 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/

相关文章:

javascript - 对我的 JavaScript 进行基准测试的最佳工具是什么?

php - Javascript 验证 if 语句

php - 重新影响 div 使 jquery 表现得很奇怪

javascript - Highcharts 使用 dateTime 来生成图表

android(2.3.3) native 浏览器问题与处理程序

javascript - 替换不同变量的特殊字符

javascript - BNF 或任何其他符号的 Excel 公式语法

append 字符串中的Javascript if语句检查对象属性是否未定义(如果不显示属性)?

jquery - 在 jQuery 移动单页模板中放置脚本标签的位置

javascript - 具有可变行/列大小的 Jquery 移动响应网格