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");
但是,如果我将这些类名更改为 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'