5

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

4

1 に答える 1

8

申し訳ありませんが、あなたの質問に対する簡単な答えはありません。プラグインのソースコードを確認しましたが、必要なメカニズムが見つかりませんでした。このプラグインを希望どおりに機能させるには、自分でプラグインを更新する必要があると思います。

optionsコールバックをパラメーターに追加してから、プラグインにこれ​​らのコールバックを使用させるという考え方です。まず、プラグインコードを変更する必要があります。オートコンプリートコントロールの表示/非表示を担当するクラスを作成する関数に移動します。

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

show()下にスクロールすると、この関数がandhide()メソッドを持つオブジェクトを返すことがわかります。次のコードを追加できます。

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 */ }
});

まったくテストされていませんが、それはただの迅速で汚い解決策です。これがお役に立てば幸いです。

于 2009-03-04T16:01:44.137 に答える