【问题标题】:JQuery Mobile: How to re-render select box?JQuery Mobile:如何重新渲染选择框?
【发布时间】:2011-01-29 06:31:34
【问题描述】:

第一次,当我加载页面时,我的选择框是空的:

<select name="secondaryTitle" id="secondaryTitle"></select>

然后我进行 ajax 调用并获取上面选择框的 json 数据。

arrtitle = objSecTitle.getAllSecondaryTitle(serviceId); // its an ajax call, that returns json object
var obj = jQuery("#secondaryTitle");
removeAllOptions(obj);
for(i=0;i<arrtitle.length;i++)
{
    obj.options.length=obj.options.length + 1;
    obj.options[obj.options.length - 1].text = arrtitle[i][1];
    obj.options[obj.options.length - 1].value = arrtitle[i][0];
}
function removeAllOptions(selectbox){
    var i;
    for(i=selectbox.options.length-1;i>=0;i--)
    {
        selectbox.remove(i);
    }
}

我的 ajax 调用非常完美。上面的代码还更改了下拉项。但是当我们使用 jQuery Mobile 时,UI 不会更新,因为它会显示/隐藏不同的 div 用于选择弹出窗口。

【问题讨论】:

    标签: javascript html jquery-mobile


    【解决方案1】:

    没关系!

    我应该正确检查文档:

    //refresh value         
    $('#select').selectmenu('refresh');
    
    //refresh and force rebuild
    $('#secondaryTitle').selectmenu('refresh', true);
    

    【讨论】:

    • 天哪,我花了这么长时间才找到!我已经尝试了好几天了。谢谢!
    • 你最好使用 .trigger('create')
    【解决方案2】:

    不要问我为什么,但这只对我有用,直到我使用双引号 ->"

    $("#secondaryTitle").selectmenu("refresh", true);//工作

    我是这样的:

    $('#secondaryTitle').selectmenu('refresh', true);//不工作

    但它不起作用 :S :S :S

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-18
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 2012-04-01
      • 1970-01-01
      • 2023-01-13
      相关资源
      最近更新 更多