追加型jquery.suggest(改訂3)

jquery.suggestはリスト部分をULタグで実現しているが、リスト項目数が多くなると、スクロールで対応したくなる。
本サイトの改造でULタグに___suggest_listというIDを割り当てているので、CSSで下記のように記述すればOKだ。

#___suggest_list {
	height:10em;
	overflow: auto;
}

ところがこれだけではうまくいかない。
スクロールバーのサムをクリックできないからだ。
これはテキスト部のblurでリストをhideにするタイマー処理に起因する。
そこで下記のように修正してみた。

/*------------------------------ by systemconcept --------*/
//$input.blur(function() {
//	setTimeout(function() { $results.hide() }, 200);
//});
var skip_flag = false;
$input.blur(
	function() {
		setTimeout(
			function() {
				if(!skip_flag) {
					$results.hide();
				} else {
					$input.focus();
					skip_flag = false;
				}
			},
			200
		);
	}
);
$results.mousedown(function() { skip_flag = true; });
/*--------------------------------------------------------*/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です