我正在制作一个小部件,它可以hover
通过showTracker
和hideTracker
功能滑入和滑出视图。如果它包含一个集中的表单元素,我想防止它滑出视图,所以我已经这样做了:
function hideTracker(){
if($('#tracker').find(':focus').length == 0){
$('#tracker').stop().hide();
}
}
凉爽的。现在,如果有一个焦点区域,鼠标碰巧移出,它不会隐藏。不幸的是,这也意味着当该字段确实失去焦点时(并且该小部件再次隐藏的时候)它只是停留在那里。unHover 事件已经过去了。
所以我添加了这个:
$('#tracker *').blur(function(){
hideTracker();
});
这也有效 - 有一个我需要帮助的小错误!
如果焦点从跟踪器内的一个元素移动到也在 内的另一个元素,#tracker
跟踪器将隐藏。鉴于下一个表单元素具有焦点,我认为这if($('#tracker').find(':focus').length == 0)
将返回 false,但我想它没有。
.blur() 是在下一个元素获得焦点之前触发的情况吗?
我怎样才能解决这个问题?