2016-07-20 69 views
0

我在輸入元素下有一個未排序的列表。如果焦點在下一個div上,取消聚焦事件

如果我在ul-或input-element之外單擊,我想關閉ul。

但我不知道如何用jQ實現它。

要檢測輸入元素失去焦點,我會寫:

$('input[name=search]').focusout(//Close ul ); 

但我怎麼能檢測如果焦點是輸入和UL外面?


我想我找到了一個非常簡單的方法。

下面是函數

$(body).click(function(e) { 
    if(!$(e.target).hasClass('custom-ul') && $(e.target).attr('name') != 'search') 
    { //...do stuff } 
}); 
+0

你不能使用$( 'UL')事件的內容(....)。 ? –

+0

是的,我可以使用,但如果輸入失去焦點,ul將關閉 – Phil795

+0

$('input [name = search],ul')。focusout(....)? – dmoo

回答

1

您可以檢測從輸入焦點了,但還沒有從無序列表。

或嘗試這樣的事情

$(document).click(function() { 
    if ($optionsHolder.data('hidden') || $optionsHolder.is(':animated')) { 
     return; 
    } 
    $selectedHolder.click(); 
}) 

How to trigger focusout event on a ul element?

+0

你知道一個解決方法,使這項工作? – Phil795

+0

不錯的主意,但我想我找到了一個更清潔的方式;) 我把它添加到我的問題 – Phil795

+0

我沒有看到什麼是更清潔的方式,你解決問題,但偉大的無論如何:) – hongchen