2014-09-22 3 views
0

나는 같은 선택 HTML 컨트롤이 다음 내가 선택 목록에서 옵션을 선택 할 때마다 나는 그것을 볼 수 없었기 때문에 선택 메뉴 표시를 여러 번

<select name="width-dimension-inches" id="width-dimension-inches" data-bind="value: widthWhole,jqmSelectMenuRefresh :true, options: widthDimension.dimension.getDimensionsWhole()"> 

</select> 

나는 jqmSelectMenuRefresh라는 바인딩 사용자 정의 녹아웃을 생성 선택 목록에. jqmSelectMenuRefresh의 구현은 다음과 같습니다 : 나는 두 selectmenus와 끝까지 위의 코드를 실행하면

define(["jquery", "knockout", "jqueryMobile"], function ($, ko) { 
    ko.bindingHandlers.jqmSelectMenuRefresh = { 

     init: function(element) { 

      $(element).selectmenu().selectmenu('refresh', true); 

     }, 

는 아래와 같이

enter image description here

나는이 문제를 해결하기 위해 무엇을 할 수 있는가?

UPDATE 1 :

내가 다음 코드를 업데이트하는 경우 :

다음
init: function(element) { 

      $(element).selectmenu('refresh',true); 

나는 다음과 같은 오류 메시지가 얻을 :

Uncaught Error: cannot call methods on selectmenu prior to initialization; attempted to call method 'refresh' 

답변

1

당신이 selectmenu() 함수를 호출 할 때마다 새 인스턴스가 만들어집니다.

$(element).selectmenu().selectmenu('refresh', true); 

위의 코드 줄은 두 개의 보이는 요소로 끝나는 두 개의 인스턴스를 만듭니다.

var $instance = $(element).selectmenu(); 
$instance.selectmenu('refresh', true); 
+0

내가 코드를 시도하고 당신은 또한 두 번 호출하기 때문에 여전히 두 개의 선택 목록을 생성합니다

나의 제안이 객체에 함수를 호출 한 후, 플러그인을 초기화 변수에 인스턴스를 저장하는 것입니다. –

관련 문제