2012-07-04 3 views
0

this 다중 선택 jquery 구성 요소를 사용하고 있습니다. 이 사건의 방아쇠를 당기고 구독하는 방법을 생각할 수는 없습니다. (나는 js에 익숙하지 않습니다.) 그런 다음jQuery UI 다중 선택 이벤트

_updateCount: function() { 
     this.selectedContainer.find('span.count').text(this.count + " " + $.ui.multiselect.locale.itemsCount); 

     //How do I subscribe to the event? 
     $(this).trigger('collectionChanged'); 
    } 

나는 'collectionChanged'에 가입하기 위해 노력하고있어 :

는 내가 지금까지 노력했습니다 것은 ui.multiselect.js 파일의 _updateCount 기능에 collectionChanged 이벤트를 트리거하는 것입니다 asp.net에서 이벤트 :

$('#<%= dropDown.ClientID %>').bind('collectionChanged', function() 
    { 
     alert("Changed!"); 
    }); 

생성 된 페이지의 마크 업이 있습니다 :

<select name="ctl06$dropDown" id="ctl06_dropDown" class="multiselect" multiple="multiple" name="countries[]"> 
     <option value="1134">A</option> 
     <option value="1980">B</option> 
     <option value="17789">C</option> 
     <option value="180367">D</option> 
     <option value="1990673">E</option> 

    </select> 

<script type="text/javascript"> 
$(function() { $('.multiselect').multiselect(); }); 

$('#ctl06_dropDown').bind('collectionChanged', function() 
{ 
    //Not working (never triggerd) 
    alert("Changed!"); 
}); 

</script> 

T 행크스.

답변

2

_updateCount 함수의 this 값은 DOM 요소가 아닙니다. 지금하고있는 일에 대해 잘 이해하면 DOM 요소에서 맞춤 이벤트를 실행 한 다음 동일한 DOM 요소에서 맞춤 이벤트를 수신해야합니다. 따라서 코드에 두 가지 문제가 있습니다. 첫 번째는 $(this)this을 사용하여 이벤트를 트리거하려고한다는 것이고, 두 번째는 트리거하지 않는 DOM 요소에서 이벤트를 수신한다는 것입니다. 그 사건.

_updateCount: function() { 
    this.selectedContainer.find('span.count').text(this.count + " " + $.ui.multiselect.locale.itemsCount); 
    $("#ctl06_dropDown").trigger("collectionChanged"); 
} 

그런 다음 $('#ctl06_dropDown').bind('collectionChanged'... 라인이 정상적으로 작동해야합니다.

+0

예, 그게 전부입니다. 정말 고맙습니다. –

1

당신이 사용하지 않는 플러그인은 지원 이벤트입니다.

다음 버전을 사용하십시오. http://quasipartikel.at/multiselect_next/

이있는 경우 이벤트가 http://quasipartikel.at/multiselect_next/#optionTabs-3 당신은 모두 소위 "선택"이벤트가 &는 "해제"를 사용합니다

에서 샘플 코드와 함께 설명했다.

+0

빅터의 답이있는 고맙다는 codebins 이제 몇 가지 기본 이벤트를 실행할 수 있습니다. 그러나 어쨌든,이 "다음 버전"으로 이것을하기위한 더 좋은 방법이 있음을 아는 것이 좋습니다. –