while循环增量值在函数内部不起作用

时间:2013-08-22 11:09:47

标签: javascript jquery

我有以下代码:

<?php
$i = 5;
while($i > 0){
echo "
<input type = 'submit' value = '$i' id = '$i'>
";
$i--;
}
?>
<script type = 'text/javascript' src = 'js/jquery.js'></script>
<script type = 'text/javascript'>
$(document).ready(function(){
var i = 5;
while(i > 0){
$('#'+i).live('click',function(){
alert(i);
});
i--;
}
});
</script>

当我点击一个按钮时,javascript应该提示我点击的按钮的ID。 但是我点击它的哪个按钮警告0。我认为while循环增量值在函数内部不起作用。 id应该做什么?

1 个答案:

答案 0 :(得分:1)

这是因为变量i的某些closure scope

$(document).ready(function(){
    var i = 5;
    while(i > 0){
        (function(idx){
            $('#'+idx).live('click',function(){
                alert(idx);
            });
        })(i)
        i--;
    }
});