jQuery的创建的。点击功能的“数组”

问题描述:

我有一套的div:jQuery的创建的。点击功能的“数组”

<div id="div_01">ASD</div> 
<div id="div_02">ASD</div> 
<div id="div_03">ASD</div> 

我想创建一个组。点击功能为这些div:

我尝试这样做:

for (var i = 1; i < 4; i++) { 
     var picName = "#BSViolenceDiv_0" + i.toString(); 
     //alert("\nI have for i: " + i + ": " + picName); 
     $("#div_0" + i.toString()).click(function(){ 
      $("#div_0" + i.toString()).animate({opacity:1}, 1000); 
     });  
    } 

它不工作,因为我最终被3

我做了什么错?

+0

我很困惑你的问题。 –

+1

您不需要创建一大堆'click'事件处理程序。只需使用一个类,然后将该单击处理程序绑定到该类,就像@ Zakaria的答案一样。 –

这将是更好,如果你可以使用一个全球性的,而不是类(如my_div),如:

<div id="div_01" class="my_div">ASD</div> 
<div id="div_02" class="my_div">ASD</div> 
<div id="div_03" class="my_div">ASD</div> 

然后click事件附加到这个类,这样你就不会在所有的div“需要循环s:

$(".my_div").click(function(){ 
    $(this).animate({opacity:1}, 1000); // "$(this)" refer to the clicked div 
}) 

希望这会有所帮助。

$(".my_div").click(function(){ 
 
    $(this).animate({opacity:1}, 1000); 
 
})
.my_div{ 
 
    opacity: 0.3; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="div_01" class="my_div">ASD</div> 
 
<div id="div_02" class="my_div">ASD</div> 
 
<div id="div_03" class="my_div">ASD</div>

变量执行我已经达到Click事件处理程序的代码之前,其最终价值,所以它会一直使用该单击处理程序终值,并作为结果选择器"#div_0" + i.toString()将不会引用点击的元素。

但是,您并不需要i来引用点击的元素。只需使用this

替换:

$("#div_0" + i.toString()).animate 

有:

$(this).animate 

那是你错误的本质。但正如其他人所说,你不需要为每个div创建一个单独的处理程序。只需为所有人​​创建一个,例如通过为他们创建一个类,然后使用它来选择div元素。