jQuery のオートコンプリートを少しカスタマイズし、change
イベント ハンドラーで、追加した関数を呼び出すために入力にアクセスする必要があります。パラメータは選択されたui
アイテムですが、ユーザーがランダムなテキストを入力した場合、アイテムは選択されず、ui.item
null になります。そのため、DOMベースをトラバースすることはできませんui.item
。
要するに、私たち (実際にはこのプロジェクトの過去の誰か) が行ったことは、jquery ui ファイルを変更することです。
$.widget( "ui.autocomplete", {
// original code here
ourCustomMethod: function() {}
});
これでコンボボックスが作成されました (簡略化):
var self = this;
var input = this.input = $("<input>")
.autocomplete({
change: function(event, ui) {
if (!ui.item) {
// I want to call the ourCustomMethod here
// I can't use the parents of ui.item because it's null
}
}
});
では、どうすれば にアクセスできますourCustomMethod
か? 私は推測してself.input
いますが、指を置くことはできません。