2013-02-06 1 views
0

단일 페이지 접근법을 사용하는 데 문제가 있습니다. "필터 페이지"로 이동하면 아약스를 통해 응용 프로그램 목록을 채우고 싶습니다. 여기에서 호출을 시뮬레이트했습니다. 클릭 적용페이지 전환시 드롭 다운을 비울 수 없음 Jquery Mobile

function populateList() 
{ 
    $('#drpApplication').empty().listview('refresh'); 
    if (typeof cache["FilterCounter"] == "undefined") { 

        cache["FilterCounter"] = 1; 
       } 
     var listItem = "<option value=" + '\'' + '1' + '\'' + ">" + 'Name1' + "</option>"; 
     $('#drpApplication').append(listItem); 
      var listItem2 = "<option value=" + '\'' + '2' + '\'' + ">" + 'Name2' + "</option>"; 
     $('#drpApplication').append(listItem2); 
      var listItem3 = "<option value=" + '\'' + '3' + '\'' + ">" + 'Name3' + "</option>"; 
     $('#drpApplication').append(listItem3); 


} 

내가 필터 페이지로 돌아 갈 때 다음 응용 프로그램 목록 데이터의 새로운 세트를 추가, 다른 페이지로 저를 넣습니다. 내가 드롭 다운을 먼저 비우라고 말해도 이벤트가 발생합니다. 또한 드롭 다운에서 응용 프로그램을 선택하는 것은 다음 방문에 어떻게됩니까 페이지

$('#drpApplication').change(function() { 

     $("#drpApplication option:selected").each(function() { 
      var filterItemId = 'liApplicationName' + cache["FilterCounter"].toString(); 
      $('#lstApplicationList').append('<li value="' + $(this).val() + '" id="' + filterItemId + '"data-icon="delete"><a onclick="removeFilterItem(\'' + filterItemId + '\')">' + $(this).text() + '</a></li>').listview('refresh'); 
      cache["FilterCounter"] = cache["FilterCounter"] + 1; 
     }); 

    }).change(); 

의 다른 목록보기에 선택을 추가하는 당신이 목록보기에서 같은 항목의 2를두고 드롭 다운 메뉴에서 응용 프로그램을 선택하면됩니다 가정한다 두 번째 방문에는 3 개 항목, 3 번째 항목에는 1 개 항목 선택, 페이지 방문은 3 개 등등.

DOM이 내용을 캐싱하고있는 것처럼 보입니다. 멈출 수 없습니까?

나는 이것을 위해 jfiddle를 시작했지만 목록을 채우는 기능은 실행되지 않습니다. 방금 jfiddle를 사용하기 시작 했으므로 아마도 시뮬레이션 설치가 잘못되었을 수 있습니까?

http://jsfiddle.net/D2gbq/27/

답변

0

당신의 선택을 비우는 다음 목록보기를 새로 고침 한 다음 새 옵션을 추가하는 것 같습니다. 뒤에 목록보기 을 새로 고쳐야 옵션을 추가 할 수 있습니다.

이 시도 :

function populateList() 
{ 
    $('#lstApplicationList').empty(); 
    $('#drpApplication').empty(); 

    if (typeof cache["FilterCounter"] == "undefined") { 
    cache["FilterCounter"] = 1; 
    } 
    var listItem = "<option value=" + '\'' + '1' + '\'' + ">" + 'Name1' + "</option>"; 
    $('#drpApplication').append(listItem); 

    var listItem2 = "<option value=" + '\'' + '2' + '\'' + ">" + 'Name2' + "</option>"; 
    $('#drpApplication').append(listItem2); 

    var listItem3 = "<option value=" + '\'' + '3' + '\'' + ">" + 'Name3' + "</option>"; 
    $('#drpApplication').append(listItem3); 

    $('#lstApplicationList').listview('refresh'); 
    $('#drpApplication').listview('refresh'); 
} 
관련 문제