【问题标题】:Is it possible to create element on the fly with jQuery Mobile?是否可以使用 jQuery Mobile 动态创建元素?
【发布时间】:2011-08-05 14:27:15
【问题描述】:

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

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

在我的原版应用中,我根据用户交互动态创建了页面的一些元素。

例如,可以这样创建一个滑块(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*/
           });

}

它会产生一个漂亮的滑块。现在看起来像:

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 中写入滑块?

谢谢。

编辑:我在doc 中发现可以使用container.trigger("create"); 来实现 但是这还不行。

EDIT2:好的 create 是解决方案。

【问题讨论】:

    标签: javascript jquery jquery-mobile


    【解决方案1】:

    根据文档(请参阅问题中的编辑),在包含元素上使用 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 的文档缺少搜索选项。

    【讨论】:

    • 这对我不起作用。如果我使用 .trigger("create"),下拉菜单 () 看起来很奇怪并且行为异常。
    【解决方案2】:

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

    【讨论】:

    • 那行不通。我也试过 trigger("create");没有任何成功。
    猜你喜欢
    • 1970-01-01
    • 2014-12-11
    • 1970-01-01
    • 1970-01-01
    • 2013-01-21
    • 2015-11-05
    • 1970-01-01
    • 2015-05-04
    • 2019-09-16
    相关资源
    最近更新 更多