私はこれを魅力的に機能させます:
function HideLayer(theEvent){
var MyDiv=document.getElementById('MyDiv');
if(MyDiv==(!theEvent?window.event:theEvent.target)){
MyDiv.style.display='none';
}
}
ああ、MyDiv
タグは次のようになります。
<div id="MyDiv" onmouseout="JavaScript: HideLayer(event);">
<!-- Here whatever divs, inputs, links, images, anything you want... -->
<div>
このように、onmouseout が子、孫などに渡された場合、style.display='none'
実行されません。しかし、onmouseout が MyDiv の外に出ると実行されます。
したがって、伝播を停止したり、タイマーを使用したりする必要はありません...
例をありがとう、私はそれらからこのコードを作ることができました。
これが誰かに役立つことを願っています。
次のように改善することもできます。
function HideLayer(theLayer,theEvent){
if(theLayer==(!theEvent?window.event:theEvent.target)){
theLayer.style.display='none';
}
}
そして、次のような DIV タグ:
<div onmouseout="JavaScript: HideLayer(this,event);">
<!-- Here whatever divs, inputs, links, images, anything you want... -->
<div>
より一般的には、1 つの div だけでなくid="..."
、各レイヤーに追加する必要もありません。