2012-02-11 91 views
2

我正在構建一個帶有Ajax調用的選擇列表,該列表在另一個選擇列表發生更改時觸發。在jQuery手機選擇列表上手動觸發樣式

頁面正確加載jQuery樣式,但是當我用新div替換我的ajax容器時,我無法使用jQuery移動設備來格式化它。這意味着它將恢復到本機選擇列表格式。

我已經試過什麼建議在JQM documentation

var myselect = $("select#foo"); 
myselect[0].selectedIndex = 3; 
myselect.selectmenu("refresh"); 

,但不起作用。我的頁面最初加載此:

<div id="ajax-destination"> 
    <select id="destinationAirport" data-native-menu="false"> 
     <option value="-- Please Select --" data-placeholder="true">-- Please Select --</option> 
    </select> 

,這是我的jQuery代碼包在其他選擇列表中的更改功能。

$('#ajax-destination').empty(); 
$.post(url, { departureAirport : departureAirport }, function(data) { 
    $('#ajax-destination').append(data); 
var myselect = $("#destinationAirport"); 
myselect[0].selectedIndex = 1; 
myselect.selectmenu("refresh"); 
}); 

唯一的其他方法可以讓我覺得這樣做是通過Ajax返回一個JSON數組,並用它來的選項添加到選擇列表中,但我寧願只發送HTML格式,因爲它是簡單跟隨。

+0

你可以嘗試myselect.trigger(「創造」)的頁面; – 2012-02-11 22:56:39

+0

嗨菲爾,你能否做出答案,我可以接受它?完整的解決方案是:$ .post(url,{departureAirport:departureAirport},function(data){$''ajax-destination')。append(data).trigger(「create」){$ ajax-destination')。 ; \t \t \t \t}); – Andy 2012-02-14 05:48:31

回答

2

如果myselect.selectmenu("refresh");myselect.selectmenu("refresh",true);不工作,你可以隨時刷新使用

you could try myselect.trigger('create');