要素に jquery UI オートコンプリートを簡単に配置できるように、次の便利な関数を作成しました。
jQuery.fn.bindAutocomplete = function() {
$(this).each( function() {
$(this).autocomplete({
source: $(this).data('autocomplete-source')
});
});
}
私は常に要素にアタッチするという規則を使用しているdata-autocomplete-source
ので、どこでもこれを呼び出すことができます:
$('input#name').bindAutocomplete();
現在、オートコンプリート関数は、オプション ハッシュの後にオプションの引数としてコールバック関数を受け取ることができます。私はそれをいじる必要はほとんどありませんが、少数のインスタンスで成功関数を渡したいことがわかりました。明らかに、コールバックを渡す必要がある場合は完全なオートコンプリート関数を書き直すbindAutocomplete()
ことができますが、オプションのコールバック関数を受け入れて に渡すことができるように関数を書き直すだけですautocomplete()
。
それで、どうやってそれをしますか?
アップデート
以下のクローズアップに基づいて、これを試しましたが、完全な回答ではありません。
jQuery.fn.bindAutocomplete = function(callbacks) {
$(this).each( function(callbacks) {
options = $.extend({source: $(this).data('autocomplete-source')}, callbacks);
$(this).autocomplete(options);
});
}
これにより、コールバックを渡すかどうかに関係なく、オートコンプリートが正しくバインドされますが、コールバックを渡すと呼び出されません。
つまり、次はオートコンプリートをトリガーしましたが、コールバックはトリガーしませんでした。
$('input#name').bindAutocomplete({ select: function(){alert("working");} })