[英]Javascript - div inside div problem
当鼠标移出id1
时,我需要hideall()
函数才能执行。 使用下面的代码,它可以正确调用hideall()
,但是当鼠标移出id2
时,它将再次调用它。
<div id="id1" onmouseout="hideall();" style="border:1px solid red;">
<div id="id2">This is inside id1 div</div>
</div>
Internet Explorer中有一个专有事件称为“鼠标离开”,我相信这正是您要寻找的。 不幸的是,这并不适用于所有浏览器。 我建议您使用jQuery之类的JavaScript库。 它内置了事件。有关详细信息,请参见http://api.jquery.com/mouseleave/ 。 因此,您可能想要的是这样的东西:
<div id="id1" style="border:1px solid red;">
<div id="id2">This is inside id1 div</div>
</div>
<script>
$(document).ready(function() {
$('#id1').mouseleave(function() {
hideAll();
// Or whatever else you want to do when the mouse leaves the element.
});
});
</script>
改编我以前有的另一个答案:
<div id="id1" onmouseout="showTarget('id1',0);" onmouseover="showTarget('id1',1);" style="border:1px solid red; width: 150px; height: 100px">
<div id="id2" onmouseover="showTarget('id1',1);" onmouseout="showTarget('id1',1);" style="background-color: red; color: white; width: 100px; height: 75px;">This is inside id1 div</div>
</div>
function showTarget(target, state) {
switch (state) {
case 1:
state = 'block';
break;
default:
state = 'none';
}
console.log(state);
document.getElementById(target).style.display = state;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.