2012-02-11 2 views
2

다른 선택 목록이 변경되면 트리거되는 Ajax 호출로 선택 목록을 작성합니다.jQuery 모바일 선택 목록에서 스타일을 수동으로 트리거

페이지가 jQuery 스타일로 올바르게로드되지만 새 Ajax 컨테이너를 새 div로 바꿀 때 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을 시도해 볼 수도 있습니다 사용하여 페이지를 새로 고칠 수 있습니다 작동하지 않습니다 일단이 링크를 확인; –

+0

안녕하세요 필, 대답 해 주시면 받아 들일 수 있습니까? 전체 솔루션 하였다 : $ .post (URL, {departureAirport : departureAirport}, 기능 (데이터) { \t \t \t \t \t $ ('# 아약스 목적지') 추가 (데이터) .trigger ("생성"). ; \t \t \t \t}); – Andy

답변

2

만약 myselect.selectmenu("refresh"); 또는 myselect.selectmenu("refresh",true);는 항상

you could try myselect.trigger('create'); 
관련 문제