私は以下のような状況に陥っています:jqueryでのイベントのオーダー
キーワードを入力できるテキストボックス。 keyupイベントは、AJAXスクリプトを起動してデータベース内で類似したキーワードを検索します。見つかった場合、DIVが見つかったキーワード(show()
)が表示されます。
div内のキーワードの1つをクリックすると、選択したキーワードがテキストボックスに書き込まれ、divが非表示になります(hide()
)。
DIVが表示されていて、フォームのどこかをクリックするか、テキストボックス(focusoutイベント)のタブをクリックすると、DIVが非表示になります。
これは、focusoutイベントで行うことができます。しかし、私がDIVのキーワードをクリックして登録するためにclickイベントを使用し、focusoutイベントを登録するためにfocusoutイベントを使用すると、次の問題が発生します:divのキーワードをクリックすると、focusoutイベントが発生し、このキーワードはテキストボックスにコピーされません。
/*click on found "link with class f_link" in DIV*/
$(".f_link").live('click', function(){
$newval=$(this).attr("id");
$("#textbox_id").val($newval);
$("#searchresults").hide();
})
/*when losing focus textbox hide DIV */
$("#textbox_id").focusout(function(){
$("#searchresults").hide();
})
、について説明:
#textbox_id : id of textbox
#searchresults: id of DIV with found results
.f_link : class of "link" in div searchresults like <span class="f_link" id="result1>result 1</span>
をはい、あります。 http://api.jquery.com/focusout/ – Bryan