jqueryクリックclickイベントとblurイベントの競合を解決する方法
531 ワード
最近1つのクエリーの小さい機能をして、input入力ボックスは文字を入力した後に、自動的にいくつかのクエリーの結果をリストして、キーボードの上下のボタンあるいはマウスがクエリーの結果の選択を行うことができて、そして入力ボックスのその他の地方をクリックしてこのリストの結果を隠すことができます.
しかし、困っているのはinputにblurイベントを追加することとクエリーヒント結果clickイベントが衝突し、クエリー結果をクリックすると、まずinputのblurイベントがトリガーされ、クエリーヒント結果を隠すことができなくなります.
解決策:
blurフォーカスを失ったイベントに遅延イベントを追加し、clickイベントの後にblurイベントを実行させます.
しかし、困っているのはinputにblurイベントを追加することとクエリーヒント結果clickイベントが衝突し、クエリー結果をクリックすると、まずinputのblurイベントがトリガーされ、クエリーヒント結果を隠すことができなくなります.
解決策:
blurフォーカスを失ったイベントに遅延イベントを追加し、clickイベントの後にblurイベントを実行させます.
$(".query_tools").blur(function(event){
setTimeout(function () {
$(".query_list").css("display", "none");
}, 300);
});