カスタムコールバック関数をjqueryオートコンプリート拡張機能にアタッチするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/610847

  •  03-07-2019
  •  | 
  •  

質問

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

役に立ちましたか?

解決

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

アイデアは、コールバックを 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 */ }
});

まったくテストされていません。これはただの迅速で汚れたソリューションです。これがお役に立てば幸いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top