在js论坛等半天没人回。。这在发一下吧。代码如下JS如下:
$(document).ready(function(){
var Marcount = $(".list").children("ul").children("li").length;
for(var m=1;m < Marcount+1; m++){
var Padcount = $("#thumb_"+m+"_view").find("li").length;
var Divbox = "#thumb_"+m+"_show";
for(var n=1;n<Padcount+1; n++){
$("#thumb_"+m+"_"+n).bind("mouseover",(function(e){
$(Divbox).find("img").remove();
$(Divbox).append("<img src=\""+$(this).find("img").attr("src")+"\">");
$(this).css("background","#0078C4");
}));
$("#thumb_"+m+"_"+n).bind("mouseout",(function(e){
$(this).css("background","#ffffff");
}));
}
}
});html如下
<div class="list">
<ul>
<li>
<div class="con">
<div class="space"  id="thumb_1_show"></div>
<div class="intro">

</div>
</div>
<div class="img" id="thumb_1_view">
<ul>
<li id="thumb_1_1"><a href=""><img src="images/thumb_1.jpg"></a></li>
<li id="thumb_1_2"><a href=""><img src="images/thumb_2.jpg"></a></li>
<li id="thumb_1_3"><a href=""><img src="images/thumb_3.jpg"></a></li>
</ul>
</div>
</li>
<li>
<div class="con">
<div class="space"  id="thumb_2_show"></div>
<div class="intro">

</div>
</div>
<div class="img" id="thumb_2_view">
<ul>
<li id="thumb_2_1"><a href=""><img src="images/thumb_1.jpg"></a></li>
<li id="thumb_2_2"><a href=""><img src="images/thumb_2.jpg"></a></li>
<li id="thumb_2_3"><a href=""><img src="images/thumb_3.jpg"></a></li>
</ul>
</div>
</li>
<li>
<div class="con">
<div class="space" id="thumb_3_show"></div>
<div class="intro">

</div>
</div>
<div class="img" id="thumb_3_view">
<ul>
<li id="thumb_3_1"><a href=""><img src="images/thumb_1.jpg"></a></li>
<li id="thumb_3_2"><a href=""><img src="images/thumb_2.jpg"></a></li>
</ul>
</div>
</li>
</ul>
</div>
为什么大循环里面的小循环的时候,在绑定事件时,m的值变成了Marcount+1了呢?我想 当鼠标放到"thumb_m_n"上的时候,thumb_m_n的图片地址将被插入相应的thumb_m_show中。。可是循环了半天每次在事件中用alert输出的m值都为4。请问我应该怎么解决这个问题。

解决方案 »

  1.   

    我在触发事件的时候把m传进去也无效。。
    我js改成了
    $(document).ready(function(){
        var Marcount = $(".list").children("ul").children("li").length;
        for(var m=1;m < Marcount+1; m++){
            var Padcount = $("#thumb_"+m+"_view").find("li").length;
            var Divbox = "#thumb_"+m+"_show";
            for(var n=1;n<Padcount+1; n++){
                $("#thumb_"+m+"_"+n).bind("mouseover",(function(m){
                    var i = m;
    $("#thumb_"+i+"_show").find("img").remove();
    $("#thumb_"+i+"_show").append("<img src=\""+$(this).find("img").attr("src")+"\">"); $(this).css("background","#0078C4");
                }));
                $("#thumb_"+m+"_"+n).bind("mouseout",(function(e){
                    $(this).css("background","#ffffff");
                }));
            }
        }
    });
    也不行
      

  2.   

    你的代码看起来没有问题,你在哪里alert输出的?
      

  3.   

    我在mouseover事件里面alert("thumb_"+m+"_show")的,出来的都是thumb_4_show,郁闷啊
      

  4.   


    $(document).ready(function(){
        var Marcount = $(".list").children("ul").children("li").length;
        for(var m=1;m < Marcount+1; m++){
            var Padcount = $("#thumb_"+m+"_view").find("li").length;
            var Divbox = "#thumb_"+m+"_show";
            for(var n=1;n<Padcount+1; n++){
    $("#thumb_"+m+"_"+n).attr("toView",Divbox);
                $("#thumb_"+m+"_"+n).bind("mouseover",(function(e){
    var toView = $(this).attr("toView");
                    $(toView).find("img").remove();
                    $(toView).append("<img src=\""+$(this).find("img").attr("src")+"\">");
                    $(this).css("background","#0078C4");
                }));
                $("#thumb_"+m+"_"+n).bind("mouseout",(function(e){
                    $(this).css("background","#ffffff");
                }));
            }
        }
    });
      

  5.   

    先把Divbox赋给“$("#thumb_"+m+"_"+n)”的toView属性值,然后再在当前对象的事件里直接调用这个对象的属性,唉,这思路我怎么也想不到,困扰了我一下午了。。感谢!