2009-03-04 5 views
5

저는 Dylan Verheul, Dan G. Switzer, Anjesh Tuladhar, Jörn Zaefferer의 jquery autocomplete 1.0.2 확장을 사용하고 있습니다. .show() 및 .hide()가 자동 완성 컨트롤 내에서 호출되면 내 자신의 콜백 함수를 실행하려고합니다. 콜백 함수를 실제로 인식 할 수있는 방법을 찾지 못했습니다. 누구든지이 컨트롤에 익숙하고 도움이된다면 크게 감사 할 것입니다.커스텀 콜백 함수를 jquery 자동 완성 확장 기능에 어떻게 첨부합니까?

답변

8

죄송합니다. 귀하의 질문에 대한 쉬운 답변이 없으므로 플러그인 소스 코드를 확인하고 원하는대로 할 수있는 메커니즘을 찾지 못했습니다. 나는 당신이 원하는대로 작동하도록이 플러그인을 스스로 업데이트해야한다고 생각합니다.

아이디어는 options 매개 변수에 콜백을 추가 한 다음 플러그인이 이러한 콜백을 사용하도록하는 것입니다. 먼저 플러그인 코드를 수정해야합니다. 자동 완성 제어를 표시/숨기기를 담당하는 클래스를 생성하는 기능으로 이동 : 당신이 아래로 스크롤하면이 기능이 show()hide() 방법으로 개체를 반환 것을 볼 수 있습니다

$.Autocompleter.Select = function (options, input, select, config) { 

. 그냥 신속하고 더러운 해결책이다, 모든 테스트

$("#myTextBox").autocomplete("http://...", 
{ 
    showCallback : function() { /* do what you want here */ }, 
    hideCallback : function() { /* do what you want here */ } 
}); 

하지 :

hide: function() { 
    ... 
    options.showCallback && options.showCallback(); // Invoke callback function if set 
}, 
... 
show: function() { 
    ... 
    options.hideCallback && options.hideCallback(); // Invoke callback function if set 
}, 

마지막으로, 당신은 당신의 자동 완성을 만들 때, 당신은 당신의 선택에 콜백을 추가해야합니다 다음과 같은 코드를 추가 할 수 있습니다 . 이게 도움이 되길 바란다.

+0

감사합니다. ybo, 시도해보세요! –

+1

작동합니다! 너 멋지다! 실제로 show 및 hide 콜백 함수가 미리 정의되어 있기 때문에 showCallback : myShow, hideCallback : myHide를 호출하면 작동합니다. 다시 한 번 감사드립니다! –

+0

그레이트;) 아이디어/코드를 저자에게 제출하려고 할 수 있습니다. – ybo