を隠す前に、私は、テキストボックスと以下のような順序なしリストを持っています良い。火クリックイベントUL
私はcombobox
のようなものを作ろうとしています。
だから、私の希望動作は次のとおりです。テキストボックスがフォーカスを失ったとき
ul
なければならない、私はどのli
にli
のclick
イベントをクリックすると、第二の機能のために、そうを非表示にします。
を隠す前に、私は、テキストボックスと以下のような順序なしリストを持っています良い。火クリックイベントUL
私はcombobox
のようなものを作ろうとしています。
だから、私の希望動作は次のとおりです。テキストボックスがフォーカスを失ったとき
ul
なければならない、私はどのli
にli
のclick
イベントをクリックすると、第二の機能のために、そうを非表示にします。
var items = ["Apple", "Banana", "Celery", "Peach", "Plum"];
$('input').on('input', function() {
var text = $(this).val();
$('ul').show().empty().append(items.filter(function(item) {
return item.match(new RegExp(text, 'i'));
}).map(function(text) {
return $('<li>').text(text);
}));
});
$('input').on('blur', function() {
$('ul').fadeOut();
});
$('ul').on('click', 'li', function() {
$('input[type=text]').val($(this).text());
$('ul').hide();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
<input type="text" />
<button>Go</button>
</div>
<ul>
</ul>
テキストボックスを更新し、liの同じクリックイベント内でulを非表示にするだけです。
$("li").on("click", function() {
$("input[type=text]").val(this.text());
$("ul").hide();
});
申し訳ありません申し訳ありませんが、jQueryは完璧ではない - 私はそれを頻繁に使用しません。とにかくこれは助けになるはずです。
私は質問をする前にこれを試してみました。私がliをクリックすると、textboxはすでにフォーカスを失っているので、ulは隠されていて、liは隠されているので、liのクリックは発射されません。 – Vishal
ああ、大丈夫です。私はその投稿からそれを得ていませんでした。とにかく解決策があるようです。 ^^ – Whothehellisthat
はい、私は解決策を得ました。手伝ってくれてありがとう。 – Vishal
回答ありがとうございます。アップルをクリックしてみてください。 – Vishal
@Vishalが修正されました。ところで、これはキーボードからアクセス可能ではありません。あなたの正確な必要性に応じて、あなたは単に 'combobox'を使いたいかもしれません。 – acbabis
私のulはスクロールバーを持つかもしれないので、私はタイムアウトを使用しません。ユーザーがスクロールするとタイムアウト後にulが消えることがあります。それでも私はあなたに何か他のことを尋ねる前にそれを試みます。お返事ありがとうございました。 – Vishal