jQuery mobile不会让我使用自定义类名

时间:2013-07-22 17:04:48

标签: jquery jquery-mobile

TL; DR :这个小提琴显示了问题:http://jsfiddle.net/kRG95/1/

我的用例不允许这些选择元素上的ID(它们来自多次呈现的模板)。如果我使用classNames,jQuery mobile会错误地呈现选择(双重包装)。

这是否有一个已知的解决方法? Le Google没有给我看任何东西。

为完整起见,以下代码 不起作用:

$(".one, .two").selectmenu();

$(".two").selectmenu("disable");

$(".one").on("change", function(){
    $(".two").selectmenu("enable");
});

$("body").trigger("create");

但如果我将这些classNames更改为id,就像这样:

$("#one, #two").selectmenu();

$("#two").selectmenu("disable");

$("#one").on("change", function(){
    $("#two").selectmenu("enable");
});

$("body").trigger("create");

一切都按预期工作。

具体错误(自从我被问到):

Uncaught Error: cannot call methods on selectmenu prior to initialization; attempted to call method 'disable'

1 个答案:

答案 0 :(得分:2)

由于jQuery Mobile在输入被widgetized时将类传播到另一个元素,你应该将select标记添加到你的选择器

$("select.one, select.two").selectmenu();

$("select.two").first().selectmenu("disable");

$("select.one").on("change", function(){
    $("select.two").selectmenu("enable");
});

$("body").trigger("create");

<强> Working fiddle