Javascript 在jQuery Mobile select上调用refresh()时出错

Javascript 在jQuery Mobile select上调用refresh()时出错,javascript,jquery,html,jquery-mobile,jquery-mobile-select,Javascript,Jquery,Html,Jquery Mobile,Jquery Mobile Select,我在更新jQuery Mobile select时遇到问题。根据需要,我希望更改内容并更新所选值 这是小提琴(代码如下): 我在控制台中收到此错误(以及选择不更新): 未捕获错误:初始化前无法调用selectmenu上的方法;试图调用方法“刷新” 我在这里看到过类似的事情,但我发现没有一个答案能解决我的问题。 我们正在使用jQueryMobile 1.3.1和jQuery1.9.1 任何帮助都将不胜感激:) 谢谢, 克里斯 代码 <div data-role="page" id="p1"

我在更新jQuery Mobile select时遇到问题。根据需要,我希望更改内容并更新所选值

这是小提琴(代码如下):

我在控制台中收到此错误(以及选择不更新): 未捕获错误:初始化前无法调用selectmenu上的方法;试图调用方法“刷新”

我在这里看到过类似的事情,但我发现没有一个答案能解决我的问题。 我们正在使用jQueryMobile 1.3.1和jQuery1.9.1

任何帮助都将不胜感激:)

谢谢, 克里斯

代码

<div data-role="page" id="p1">
    <div data-role="content">
        <h1>Page 1</h1>
        <select class="pageSelect"></select>
        <a href="#" id="update-select-1" data-role="button">Update Select Menu</a>  
    </div>
</div>

function generateOptions() {

    var numbers = [],
        html = "";

    for (var i=0; i<100; i++) {
        var v = Math.random();
        numbers.push(v);
        html = html + '<option value="' + v + '">' + v + '</option>';
    };

    return {
        html: html,
        value: numbers[5]
    };
};

$(document).on('click', '#update-select-1', function() {
    var options = generateOptions(),
        select = $.mobile.activePage.find('.pageSelect');

    select.html(options.html);
    select.val(options.value);

    // This updates the select but I lose styling
    // select.selectmenu().selectmenu('refresh', true); 

    // This fails
    select.selectmenu('refresh', true);
});

第1页
函数生成选项(){
变量数=[],
html=“”;

对于(var i=0;i不要使用
.pageSelect
作为选择器,因为jQM将创建具有此样式的附加元素 ''select=$.mobile.activePage.find('.pageSelect'); 选择.html(options.html); 选择.val(options.value);'

将html代码插入到两个元素中,选择和渲染对象,因此会丢失样式

试试这个:
$.mobile.activePage.find('select[class=pageSelect]')).html(options.html)。select('refresh');


此外,如果你从JQM开始,考虑移动到V1.4。

谢谢,这很好。我们已经使用1.3.1一段时间了,现在已经被卡住了。