程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> javascript-菜鳥求js大神幫忙!!為什麼我這段js代碼只有第一個元素綁定了事件

javascript-菜鳥求js大神幫忙!!為什麼我這段js代碼只有第一個元素綁定了事件

編輯:編程綜合問答
菜鳥求js大神幫忙!!為什麼我這段js代碼只有第一個元素綁定了事件
<script>
        window.onload=function(){
            var oParent=document.getElementById("aa");
            var boxs=oParent.getElementsByClassName("box");
            for(var i=0;i<boxs.length;i++){
                var imgs=boxs[i].getElementsByClassName("img");
                    for(var p=0;p<imgs.length;p++){
                    imgs[p].onmouseover=function(){
                        show();
                    }
                    imgs[p].onmouseout=function(){
                        unshow();
                    }
                }
            }
        }
        function show(){
            var txts=document.getElementsByClassName("txt");
                for(var j=0;j<txts.length;j++){
                    if(j==0){
                        txt[j].style.width=202+"px";
                        txt[j].style.height=202+"px";
                        txt[j].style.display="block";
                        txt[j].style.left=260+"px";
                    }else{
                        if(j%2!=0){
                            if(j<3){
                                txt[j].width=102+"px";
                                txt[j].height=102+"px";
                                txt[j].style.display="block";
                                txt[j].style.left=360+"px";
                            }else{
                                txt[j].width=102+"px";
                                txt[j].height=102+"px";
                                txt[j].style.display="block";
                                txt[j].style.left=360+"px";
                                txt[j].style.top=100+"px";
                            }

                        }else{
                            if(j<4){
                                txt[j].width=102+"px";
                                txt[j].height=102+"px";
                                txt[j].style.display="block";
                                txt[j].style.left=460+"px";
                            }else{//4
                                txt[j].width=102+"px";
                                txt[j].height=102+"px";
                                txt[j].style.display="block";
                                txt[j].style.left=460+"px";
                                txt[j].style.top=100+"px";
                            }
                        }
                        }
                }
        }
        function unshow(){
            var txts=document.getElementsByClassName("txt");
                for(var j=0;j<txts.length;j++){
                    txts[j].style.display="none";
                }
        }
        </script>

最佳回答:


__因為for先執行出來了p的值,然後下面的事件直接用到p的值,你需要做的事情是在每次onmouseover事件的時候每次執行的都是循環之後的值
你需要的是每次在做事件的時候把當前的index值存下,於是在你觸發滑動事件的時候執行的是你當前存下的下標的那個元素對象了

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved