javascript - 重要的小问题:关于onmouseover和onmouseout的理解,和执行顺序
本文介绍了javascript - 重要的小问题:关于onmouseover和onmouseout的理解,和执行顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>New Document</title>
<style>
ul{width:200px;}
ul li{color:#666;background:#eee;font-weight:bold;font-size:14px;height:30px;line-height:30px;padding:0 20px;list-style:none;}
ul .focus{font-size:22px;background:#555;color:white;}
ul .near{font-size:18px;background-color:#ccc;color:blue;}
ul .none{background:#333;color:white;}
ul .side{background:orange;}
</style>
</head>
<body>
<ul id="ul1">
<li class="none">frist row</li>
<li>111111</li>
<li>222</li>
<li>333</li>
<li>444</li>
<li>555</li>
<li>666</li>
<li>777</li>
<li class="none">888</li>
</ul>
</body>
<script>
var ul=document.getElementById("ul1");
var li=ul.children;
var first=ul.firstElementChild;
var last=ul.lastElementChild;
for( var i=0 ;i<=li.length-1;i++){
li[i].onmouseover=function(){
if(this==first||this==last){
this.className="side";
}else{
this.className="focus";
this.previousElementSibling.className="near";
this.nextElementSibling.className="near";
first.className="none";
last.className="none";
}
};
li[i].onmouseout=function(){--------》鼠标经过a之后,移动到b,在a的onmouseout的时候为什么不把移动到b时候呈现的onmouseover时的样式也一起清除呢?(只要一旦移入b的时候,就执行了b的onmouseover时样式,与此同时正好也就执行了a的onmouseout清除才对啊,这样以来就把所有的样式清除干净才对啊?)
for ( var i=0;i<=li.length-1;i++){
li[i].className='';
}
first.className="none";
last.className="none";
}
}
</script>
</html>
解决方案
javascript 是不存在真正的同步的,一定必然绝对有先有后。
所以与此同时正好也就执行了这个说法是不通的。
那么问题就来了,ab 互邻不重叠,你说有没有可能先进入 b 再离开 a 的可能呢?
逻辑上来说,当然是离开家门比来到街上的顺序靠前啦。
这篇关于javascript - 重要的小问题:关于onmouseover和onmouseout的理解,和执行顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文