suggest.js 便利です、使わせていただいています。 suggestで出てきた要素を選択した後に関数を走らせたかったので少し手を入れました。そのときのメモです。 もともとhookBeforeSearchというオプションはあるのですがAfterがなかったので。
元ソースはこちら: suggest.js - 入力補完ライブラリ
編集した箇所は以下です。
1.対象ファイル suggest.js本体
72行目付近にオプションを追加
// options
interval: 500,
dispMax: 20,
listTagName: 'div',
prefix: false,
ignoreCase: true,
highlight: false,
dispAllKey: false,
classMouseOver: 'over',
classSelect: 'select',
hookBeforeSearch: function(){},
hookAfterSearch: function(){}, // ←これを追加
380行目付近、moveEnd関数の最後に追加したオプションの呼び出しを追加
moveEnd: function() {
if (this.input.createTextRange) {
this.input.focus(); // Opera
var range = this.input.createTextRange();
range.move('character', this.input.value.length);
range.select();
} else if (this.input.setSelectionRange) {
this.input.setSelectionRange(this.input.value.length, this.input.value.length);
}
this.hookAfterSearch(); // ←追加
},
2.suggest呼び出し側でオプションを追加
var start = function(){
new Suggest.Local("text", "suggest", list,
// listのあとの引数にhookAfterSearchを追加↓
{
hookAfterSearch: function(text) {
console.log("hello world");
}
}
// 追加ここまで↑
);
};
window.addEventListener ?
window.addEventListener('load', start, false) :
window.attachEvent('onload', start);