2013-07-09 34 views
0

我在標題中有一個用戶搜索欄。輸入後,div會動態地顯示相關用戶。但是,當我點擊用戶的名稱時,focusout會導致div立即消失,因此鏈接不會被點擊。我該如何解決這個問題?將專注的延遲讓我點擊一個鏈接?

index.js.erb的:

if($('#headersearch').val().trim() == "") 
    { 
    $("#header_user_list").html('');  //empty search bar => removes div 
    } 
else 
    { 
    $("#header_user_list").html('<%= j render @header_users %>') 
    } 
$('#headersearch').focusout(function() { $('#header_user_list').html(''); }); 

我要保留事件的內容就在div當我點擊其他地方。但我希望能夠點擊用戶的名字導航到他們的頁面。有沒有簡單的方法來實現這一點?謝謝!

回答

0

你可以使用:

$('#headersearch').focusout(function() { 
    $('#header_user_list').delay(30).hide(0, function() { 
     $(this).empty(); 
    }); 
}); 

還是經典的超時或更好的邏輯。

+0

我覺得隱藏會導致div被移除。在我選擇然後取消選擇搜索框後,當輸入 – APJ

+0

時div不再出現,它允許我單擊鏈接,但是如果我取消選擇文本框並再次嘗試div,甚至不會再出現 – APJ

+0

Ya因爲empty()將刪除它的孩子。 –

0

如果我沒有弄錯它,爲什麼你不使用點擊功能? 之類的東西:

$('yourElement').click(function() { 
    // things that should happen after click, e.g. 
    // opening a specific user page 
    // or dismissing the menu 
});