1. 程式人生 > >js閉包講解

js閉包講解

mouse window fun int jpg 能力 true 講解 classname

今日看到之前寫的一段js代碼,關於導航部分鼠標放上去變類,鼠標離開等效果

技術分享圖片

前端代碼

<div class="con12">
			<div class="left">
				<ul id="liu">
					<li class="chang02">長雙歧桿菌</li>
					<li class="chang01">短雙歧桿菌</li>
					<li class="chang01">乳雙歧桿菌</li>
					<li class="chang01">嗜酸乳桿菌</li>
					<li class="chang01">羅伊氏乳桿菌</li>
					<li class="chang01">鼠李糖乳桿菌</li>
				</ul>
			</div>

			<div class="right">

				<div class="show">
					<div class="title">
						<span class="one">長雙歧桿菌</span>  <span class="two">Bifidobacterium longum</span>  <span class="three">11.5億 CFU/小袋</span>
					</div>
					<div class="des">
						可降低腸道 pH,抑制致病菌的生長繁殖,達到調節腸道菌群失調和改善腸道微環境的效果<span class="biao">[7]</span>。
					</div>
					<div class="desimg">
						<img src="img/des01.jpg">
					</div>
				</div>


				<div class="show none">
					<div class="title">
						<span class="one">短雙歧桿菌</span>  <span class="two">Bifidobacterium breve</span>  <span class="three">11億 CFU/小袋</span>
					</div>
					<div class="des">
						擁有較強的抗酸能力與粘附力,黏附在腸道細胞膜上,能有效阻止致病菌的入侵,給寶寶一個健康的腸道<span class="biao">[8,9]</span>。
					</div>
					<div class="desimg">
						<img src="img/duansuangqi.jpg">
					</div>
				</div>


				<div class="show none">
					<div class="title">
						<span class="one">乳酸雙歧桿菌</span>  <span class="two">Bifidobacterium lactis</span>  <span class="three">12億 CFU/小袋</span>
					</div>
					<div class="des">
						乳雙歧桿菌能增強寶寶的細胞免疫和體液免疫功能,提高寶寶的免疫力,讓寶寶少生病<span class="biao">[10]</span>。
					</div>
					<div class="desimg">
						<img src="img/rusuangqi.jpg">
					</div>
				</div>


				<div class="show none">
					<div class="title">
						<span class="one">鼠李糖乳桿菌</span>  <span class="two">Lactobacillus rhamnosus</span>  <span class="three">6.5億 CFU/小袋</span>
					</div>
					<div class="des">
						參與寶寶消化道內菌群調節, 排除寶寶體內毒素,維持寶寶腸道健康<span class="biao">[11]</span>。
					</div>
					<div class="desimg">
						<img src="img/shulitang.jpg">
					</div>
				</div>


				<div class="show none">
					<div class="title">
						<span class="one">羅伊氏乳桿菌</span>  <span class="two">Lactobacillus reuteri</span>  <span class="three">1億 CFU/小袋</span>
					</div>
					<div class="des">
						增加腸道固水物質——短鏈脂肪酸的含量,軟化大便,並且有很強的粘附能力,對改善腸道黏膜免疫功能,提高寶寶免疫力具有積極的作用<span class="biao">[12]</span>。
					</div>
					<div class="desimg">
						<img src="img/luoyishi.jpg">
					</div>
				</div>

				<div class="show none">
					<div class="title">
						<span class="one">嗜酸乳桿菌</span>  <span class="two">Lactobacillus acidophilus</span>  <span class="three">8億 CFU/小袋</span>
					</div>
					<div class="des">
						發酵後形成乳酸,幫助寶寶消化腸胃內的食物,提高鈣、磷、鐵的利用率,並且對其他乳桿菌和雙歧桿菌在腸道的增殖具有積極作用<span class="biao">[13,14]</span>。
					</div>
					<div class="desimg">
						<img src="img/sishuanru.jpg">
					</div>
				</div>

			</div>
		</div>

  js代碼

window.onload=function(){
	var one = document.getElementById(‘liu‘);
	var oPoint = one.getElementsByTagName(‘li‘);
	var div = document.getElementsByClassName(‘show‘);
	
	var lilen = oPoint.length;
	for (var i = 0; i < lilen; i++) {
		oPoint[i].index = i;
		oPoint[i].onmouseover = function (){
			for (var j = 0; j <lilen; j++) {
				oPoint[j].className = "chang01";
				div[j].className += " none";
            }

            oPoint[this.index].className = "chang02";
            div[this.index].className = "show";
		}
		
	}
}

  其中,看到

oPoint[i].index = i;
一時之間想不明白,大體好像是關於js的閉包知識,查找資料
https://segmentfault.com/a/1190000002805295

js閉包講解