カスタムコールバック関数をjqueryオートコンプリート拡張機能にアタッチするにはどうすればよいですか?
-
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 */ }
});
まったくテストされていません。これはただの迅速で汚れたソリューションです。これがお役に立てば幸いです。
所属していません StackOverflow