首页 > 代码库 > js闭包的应用
js闭包的应用
1 <ul id="ul1"> 2 <li style="border:1px solid red;">1</li> 3 <li style="border:1px solid red;">2</li> 4 <li style="border:1px solid red;">3</li> 5 </ul> 6 7 <div id="div1"> 8 <div style="background: red;height:300px;display:block;"></div> 9 <div style="background: green;height:300px;display:none;"></div>10 <div style="background: blue;height:300px;display:none;"></div>11 </div>12 13 <a href="http://www.baidu.com" target=“_blank”>link<a>
1 window.onload = function(){ 2 var oLis = document.getElementById("ul1").getElementsByTagName(‘li‘); 3 for(var i=0; i< oLis.length; i++){ 4 oLis[i].onclick = (function(i){ 5 return function(){ 6 oDiv._change_tab(i); 7 } 8 })(i); 9 }10 }11 12 var oDiv = {13 _change_tab: function(index){14 var oDivs = document.getElementById("div1").getElementsByTagName("div");15 var oCur_Slibs = oDiv._get_sliblings(oDivs[index], oDivs);16 oDivs[index].style.display = "block";17 for(var n=oCur_Slibs.length-1; n >= 0; n--){18 oCur_Slibs[n].style.display = "none";19 } 20 },21 _get_sliblings: function(currentNode, childNodes){22 var slibsList = [];23 for(var n= childNodes.length-1; n>=0; n--){24 if(childNodes[n].nodeType === 1 && childNodes[n] !== currentNode){25 slibsList.push(childNodes[n]);26 }27 }28 return slibsList;29 }30 }31 32 window.onbeforeunload = function close(){33 var oLis = document.getElementById("ul1").getElementsByTagName(‘li‘);34 for(var n= oLis.length-1; n>=0; n--){35 oLis[i].onclick = null;36 console.log(i);37 alert(i);38 }39 }
js闭包的应用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。