selectmenu('refresh',true)

Dar*_*Lym 16 javascript zend-framework jquery-mobile select-menu

我从zend框架站点获取表单并将其放在jquery mobile编写的函数中的新文件中,但是我收到此错误:

未捕获的异常:在初始化之前无法调用selectmenu上的方法; 试图调用方法'刷新'.

此文件的功能代码:

     function addItem(id) {
        $.ajax({
            url:'http://zf.darina.php.nixsolutions.com/order/index/create-order-mobile',
            dataType:"jsonp",
            data:{id_good:id},
            success:function (resp) {

                console.log(resp);
                $('.product-table').empty();

                $('.product-table').append(resp.prod);
                $('.product-table').append(resp.form);
                $('.add-order-btn').button();

                $('.mob-size').selectmenu('refresh', true);

                $('#block').page();
            }
        })
    }
Run Code Online (Sandbox Code Playgroud)

Hof*_*ffZ 46

强制首先初始化选择菜单:

$('.mob-size').selectmenu(); // Initializes
$('.mob-size').selectmenu('refresh', true);
Run Code Online (Sandbox Code Playgroud)

或者简单地使用它

$('.mob-size').selectmenu().selectmenu('refresh', true);
Run Code Online (Sandbox Code Playgroud)

  • 虽然这是流行的答案,但它对我的情况不起作用,我不相信它也适用于 OP。这是因为它自身的 `$(".mob-size")` 指向选择菜单和 JQM 添加的标签的 `<span>` 元素。(即。它将类传递给它创建的新元素。)标签永远不会初始化为选择菜单,因为它不可能!Jim 使用 `$("select.mob-size")` 的解决方案将确保您不会同时选择标签。 (3认同)

Sim*_*ani 5

就我而言,如果我在调用“禁用”方法之前没有初始化选择,则会出现错误,而如果我正在初始化它,则选择不会禁用而是复制自身 - 我尝试通过 TAG NAME 选择对象的 CLASS 或 ID NAME,

$('select').selectmenu('disable');
Run Code Online (Sandbox Code Playgroud)

代替

$('.select-class-name').selectmenu('disable');
Run Code Online (Sandbox Code Playgroud)

它在没有强制初始化的情况下工作

  • 亲爱的,谢谢你。经过试验,我发现我也可以使用 $('select.select-class-name') 在 jqm 1.4.5 中做同样的修复。 (4认同)