1

我有以下代码:

<?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应该怎么做?

4

1 回答 1

1

这是因为一些变量的闭包 范围i

$(document).ready(function(){
    var i = 5;
    while(i > 0){
        (function(idx){
            $('#'+idx).live('click',function(){
                alert(idx);
            });
        })(i)
        i--;
    }
});
于 2013-08-22T11:11:55.597 回答