2013-07-22 22 views
2

TL; DR:這撥弄顯示問題:http://jsfiddle.net/kRG95/1/jQuery的移動不會讓我使用自定義的類名

我的使用情況下不允許在這些選擇元素的ID(他們來自一個模板這是呈現多次)。如果我使用classNames,jQuery Mobile會錯誤地呈現選擇(雙重包裝)。

有沒有已知的解決方法呢?樂谷沒有給我任何東西。

爲了完整起見,下面的代碼工作:

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

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

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

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

但是,如果我改變這些類名到IDS,就像這樣:

$("#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'

+0

懶惰的測試,這裏的worki ng小提琴:http://jsfiddle.net/PgAeH/ –

+0

*「jQuery手機行爲不當並引發錯誤」*行爲舉止如何?什麼錯誤? –

回答

2

因爲jQuery Mobile的傳播類,當輸入部件化,你應該選擇標記添加到您選擇的另一個因素

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

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

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

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

Working fiddle

+2

對於那些想知道爲什麼,這是因爲jQuery Mobile的頁面初始化例程已經增強了'