$("#camps").empty();
for ( var i = 0; i < 5; i++) {
var camp = $("<button class='camp camp-text'>" + i + "</button>")
.button().click(function() {
alert(i);
});
$("#camps").append(camp);
}
通过上面代码生成5个按钮, 但是不论我点那个按钮都会弹出5~ 相当于i始终就等于最后一次的结果,求各位大哥帮忙解答下, 这是怎么回事啊 , 如果才能使其弹出相应的值呢 ,
var camp = $("<button class='camp camp-text' id="+i+">" + i + "</button>")
.button().click(function() {
alert(id);
});
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.min.js"></script>
<div id="camps"></div>
<script language="javascript" type="text/javascript">
$("#camps").empty();
for ( var i = 0; i < 5; i++) {
var camp = $("<button class='camp camp-text'>" + i + "</button>").click(function() {
alert(this.innerHTML);
});
$("#camps").append(camp);
}
</script>
闭包的方法:
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.min.js"></script>
<div id="camps"></div>
<script language="javascript" type="text/javascript">
$("#camps").empty();
for ( var i = 0; i < 5; i++) {
(function(key){var camp = $("<button class='camp camp-text'>" + key + "</button>").click(function() {
alert(key);
});
$("#camps").append(camp)})(i);
}
</script>