jQuery.suggestをIEの日本語に対応

jQuery.suggestでサジェスト機能を実装しようとしたところIEでの日本語の認識が上手に行きませんでした。

調べてみたところ原因は100行目あたりの以下のコード。

} else if ($input.val().length != prevLength) {
	if (timeout) 
		clearTimeout(timeout);
	timeout = setTimeout(suggest, options.delay);
	prevLength = $input.val().length;
}

文字数で変化を取得しているので、たとえば「か」と入力したい場合、最初の「k」を入力した時点でサジェスト機能が動作し、「a」を入力して「か」になった段階では文字数が変わらないのでサジェスト機能が動作しない形になる。

} else if ($input.val() != prevLength) {
	if (timeout) 
		clearTimeout(timeout);
	timeout = setTimeout(suggest, options.delay);
	prevLength = $input.val();
}

このように.lengthを取ってやればちゃんと動作します。

関連エントリー

8のjQueryのすごいTIPS
jQueryを良くする25のTIPS
jQueryのコードを良くする5つのTIPS
jQueryを使ったサンプルコード

スポンサードリンク

«[ASCII.jp]初めてのjQuery:セレクターAPIを一挙解説 | メイン | Web creators (ウェブクリエイターズ) 2009年 09月号»