2009-03-04 11 views
5

私は、Dylan Verheul、Dan G. Switzer、Anjesh Tuladhar、JörnZaeffererによるjqueryオートコンプリート1.0.2拡張を使用しています。 .show()と.hide()がオートコンプリートコントロール内から呼び出されたときに私自身のコールバック関数を実行しようとしています。実際にコールバック関数を認識するための方法は見つかりませんでした。誰もがこのコントロールに精通していて、私が大いに感謝してくれるのを助けることができます。カスタムコールバック関数をjqueryオートコンプリート拡張にどのようにアタッチしますか?

答えて

8

申し訳ありませんが、私はあなたの質問に簡単な答えを持っていない、私はプラグインのソースコードをチェックし、あなたが望むようにするためのメカニズムを見つけませんでした。私はあなたが望むように動作するように、このプラグインを自分で更新しなければならないと思う。

考えられるのは、コールバックをoptionsパラメータに追加してから、プラグインでこれらのコールバックを使用することです。まず、プラグインのコードを変更する必要があります。自動補完コントロールを表示/非表示を担当したクラスを作成する機能にアクセスします。

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

あなたは下にスクロールする場合は、この関数はshow()hide()メソッドを持つオブジェクトを返すことがわかります。あなたは、次のコードを追加することができます:あなたはあなたのオートコンプリートを作成するときに

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

最後に、あなたはあなたのオプションにあなたのコールバックを追加する必要があります

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

すべてでテストされていない、それだけで迅速かつ汚いソリューションです。私はこれが役立つことを願っています

+0

yboさんに感謝して、試してみてください! –

+1

それは動作します!あなたは素晴らしいです!私は実際には、私はshowCallback:myShow、hideCallback:myHideとそれだけで動作し、ありがとう! –

+0

素晴らしい;)アイデア/コードを著者に提出しようとすることができます、彼らは興味があるかもしれません。 – ybo

関連する問題