需求有点复杂,在标题中不容易说清楚,是这样的
我有一个input type="test"当input得到焦点时,显示一个关联的div(这一点可以做到)来选择里面的select当失去焦点(input和div都没有焦点)的时候,隐藏div,div是没有focus和blur的,如果用input的blur,那么一旦要去点div中的select时,div却被隐藏了。。各位给个思路,谢谢
我有一个input type="test"当input得到焦点时,显示一个关联的div(这一点可以做到)来选择里面的select当失去焦点(input和div都没有焦点)的时候,隐藏div,div是没有focus和blur的,如果用input的blur,那么一旦要去点div中的select时,div却被隐藏了。。各位给个思路,谢谢
是不是 div 或其子元素(元素的contains方法, ff下可构建),然后再做隐藏的动作。
层的mouseout或者select的blur时,层隐藏
有个问题要注意下,当鼠标从层移到select时会触发层的mouseout。
<input id="effect" onfocus="showDiv();" />
<div id="divDialog" onmouseout="hidDiv(event,this);" style="width:200px;height:200px; background-color:#999999">
我的选项:
<select id="sel">
</select>
</div>
function hidDiv(event, obj)
{
var srcelement = window.event ? event.toElement : event.explicitOriginalTarget;//鼠标移向的元素 if (!srcelement|| srcelement.id == "divDialog" || srcelement.id=="sel" )
{
return;
}
document.getElementById("divDialog").style.visibility = "hidden";
}
function showDiv(event)
{
document.getElementById("divDialog").style.visibility = "visible";
}
function CreateFunction(owner, func)
{
var ps,i;
if(null==owner)owner = window;
ps = new Array();
for(i=2;i<arguments.length;++i)
ps.push(arguments[i]);
return function(){owner[func].apply(owner, ps);}
}
这个时候在ff好像是得不到event