2016-07-20 70 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