Javascript。。参考值可能存在问题

Javascript。。参考值可能存在问题,javascript,jquery,Javascript,Jquery,这里的问题是处于警报状态的页面的最终值为i。。有什么解决办法吗 for(var i=start;i<=end;i++) { num=pageNumber.clone(); num.click(function(event) { event.preventDefault(); var pa

这里的问题是处于警报状态的页面的最终值为i。。有什么解决办法吗

  for(var i=start;i<=end;i++)
            {
                num=pageNumber.clone();

                num.click(function(event)
                {
                    event.preventDefault();
                    var page=i;
                   alert(page);
                   // drawPager();
                });
                num.find("span").text(i);
                if(i==curPage) {
                    num.find("span").addClass("current");
                    num=num.find("span");


                }
                $("#pager>div").append(num);
            }

for(var i=start;i您需要在单独的函数中添加处理程序,该函数将
i
作为参数

例如:

for(var i=start;i<=end;i++) {
    handlePage(i);
}

function handlePage(i) {
    num=pageNumber.clone();

    num.click(function(event)
    {
        event.preventDefault();
        var page=i;
       alert(page);
       // drawPager();
    });
    num.find("span").text(i);
    if(i==curPage) {
        num.find("span").addClass("current");
        num=num.find("span");


    }
    $("#pager>div").append(num);
}

for(var i=start;i您需要在单独的函数中添加处理程序,该函数将
i
作为参数

例如:

for(var i=start;i<=end;i++) {
    handlePage(i);
}

function handlePage(i) {
    num=pageNumber.clone();

    num.click(function(event)
    {
        event.preventDefault();
        var page=i;
       alert(page);
       // drawPager();
    });
    num.find("span").text(i);
    if(i==curPage) {
        num.find("span").addClass("current");
        num=num.find("span");


    }
    $("#pager>div").append(num);
}

for(var i=start;i您应该这样做:

num.click(function(i) {
   return function(event) {
        event.preventDefault();
        var page = i;
        alert(page);
   }
}(i));

这将创建一个额外的存储模块,因此i不会被覆盖。

您应该执行以下操作:

num.click(function(i) {
   return function(event) {
        event.preventDefault();
        var page = i;
        alert(page);
   }
}(i));

这将创建一个额外的存储模块,因此i不会被覆盖。

根据您提供的代码,这是页面变量的正确行为。您能告诉我们您正在尝试完成什么吗?如果我们不知道问题的原因,则很难知道解决方案。我不希望页面是相同的…可能重复的页面在您提供的代码中,这是page变量的正确行为。您能告诉我们您正在尝试实现什么吗?如果我们不知道问题所在,就很难知道解决方案。我不希望page是相同的…可能重复的how?确切地说是为了实现这个?how?确切地说是为了实现这个?