有一個bug:運行程序后首次點擊后臺腳本和前端框架時,需要點擊兩下才能展開ul列表,第二次點只需要點擊一次就能展開列表,這是為什么?
<script?type="text/javascript"> window.onload=function(){ ??????//?將所有點擊的標題和要顯示隱藏的列表取出來 ??????var?paras=document.getElementsByTagName("p"); ??????var?uls=document.getElementsByTagName("ul"); ?????//?遍歷所有要點擊的標題且給它們添加索引及綁定事件 ????? ?????for(var?i=0;i<paras.length;i++) ?????{ ?????????paras[i].id=i; ?????????paras[i].onclick=function(){ ?????????????if(uls[this.id].style.display=="none") ?????????????{? ?????????????????uls[this.id].style.display="block"; ?????????????} ??????????????else ??????????????{ ??????????????????uls[this.id].style.display="none"; ??????????????} ????????????? ?????????} ?????} ???? } </script>
運行程序后首次點擊后臺腳本和前端框架時,需要點擊兩下才能展開ul列表,第二次點只需要點擊一次就能展開列表,這是為什么?
2016-09-27
頁面剛打開時,第二個和第三個ul的display屬性為undefined,所以剛開始總是執(zhí)行else語句
if(uls[this.id].style.display=="block")
? ? ? ? ? ? ?{?
? ? ? ? ? ? ? ? ?uls[this.id].style.display="none";
? ? ? ? ? ? ?}
? ? ? ? ? ? ? else
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? uls[this.id].style.display="block";
? ? ? ? ? ? ? }
2016-10-06
?if(uls[this.id].style.display=="block")
?????????????{?
?????????????????uls[this.id].style.display="none";
?????????????}
??????????????else
??????????????{
??????????????????uls[this.id].style.display="block";
??????????????}
點擊事件換成這樣就ok,你寫的那樣的話需要加非行間樣式