Javascript var i=0;i

Javascript var i=0;i,javascript,jquery,asp.net,html,for-loop,Javascript,Jquery,Asp.net,Html,For Loop,这并不像其他答案那样是解决实际问题的好方法。但是,它演示了创建作用域的概念:您正在调用一个函数,该函数使用一个参数index,并为其传递循环迭代器变量i。这意味着它内部的函数(它返回的函数)现在可以始终访问此参数的值。内部函数存储在fn中,然后作为单击处理程序传递 如果这看起来真的很棘手,下面是一个例子 *请注意,提议的Javascript/Ecmascript新版本可能会添加块作用域变量。但是,它目前还没有以跨浏览器的方式实现。谢谢您的帮助。我会选择你的答案,但Niels的答案更相关,因为我不

这并不像其他答案那样是解决实际问题的好方法。但是,它演示了创建作用域的概念:您正在调用一个函数,该函数使用一个参数
index
,并为其传递循环迭代器变量
i
。这意味着它内部的函数(它返回的函数)现在可以始终访问此参数的值。内部函数存储在
fn
中,然后作为单击处理程序传递

如果这看起来真的很棘手,下面是一个例子


*请注意,提议的Javascript/Ecmascript新版本可能会添加块作用域变量。但是,它目前还没有以跨浏览器的方式实现。

谢谢您的帮助。我会选择你的答案,但Niels的答案更相关,因为我不知道.next()函数。非常感谢您的意见:-)谢谢您的帮助。我会选择你的答案,但Niels的答案更相关,因为我不知道.next()函数。非常感谢您的输入:-)谢谢Gijs,我感谢您的解释。谢谢Gijs,我感谢您的解释。
<div class="download-listing">
    <div class="download">
        <img src="/img/thumb0.jpg" alt="" />
        <div id="downloadLink0" class="dl">Download</div>
        <input type="hidden" id="hf0" value="/GetImage.ashx?path=/img/0.jpg" class="hf" />                    
    </div>
    <div class="download">
        <img src="/img/thumb1.jpg" alt="" />
        <div id="downloadLink1" class="dl">Download</div>
        <input type="hidden" id="hf1" value="/GetImage.ashx?path=/img/1.jpg" class="hf" />              
    </div>
    <div class="download">
        <img src="/img/thumb2.jpg" alt="" />
        <div id="downloadLink2" class="dl">Download</div>
        <input type="hidden" id="hf2" value="/GetImage.ashx?path=/img/2.jpg" class="hf" />                    
    </div>
</div>
<input id="count" type="hidden" value="3" />
<!-- Hidden popup -->
<div id="popup">
<p><a id="close" class="bClose action">I disagree</a><a id="file-link" class="action" href="#">I agree</a></p>
</div>
<script type="text/javascript">
$(document).ready(function () {
  for (var i = 0; i < $("#count").val(); i++) { 
    var index = i;
    $("#downloadLink" + index).click(function () {
      $('#file-link').attr('href', $('#hf' + index).val());
      $('#popup').bPopup();
    });          
  }      
});
</script>
$(function(){
    $(".download .dl").click(function(){
        $('#file-link').attr('href', $(this).next("input").val());
        $('#popup').bPopup();
    });
});
<div id="downloadLink0" class="dl" data-path="/GetImage.ashx?path=/img/0.jpg">Download</div>
$('.dl').click(function(){
    $('#file-link').attr('href', $(this).attr('data-path')); //could also do $(this).data('path') if using jQuery 1.6 or later
    $('#popup').bPopup();
});
 $("div[id*='downloadLink']").click(function () {
          $('#file-link').attr('href',$(this).siblings('img').attr('src'));
          $('#popup').bPopup();
});         
$(document).ready(function () {
  for (var i = 0; i < $("#count").val(); i++) {
    var fn = (function(index) {
      return function () {
          $('#file-link').attr('href', $('#hf' + index).val());
          $('#popup').bPopup();
      };
    })(i);
    $("#downloadLink" + i).click(fn);
  }     
});