我有一个jQuery的小问题:我需要像这样做:
$(document).ready(function(){
links = {};
links.a = "Link a";
links.b = "Link b";
links.c = "Link c";
for (x in links){
$("#" + x).css("border","1px solid #000");
$("#" + x).click(function(){
alert(x);
});
}
});
</script>
<div id="a">a</div><br />
<div id="b">b</div><br />
<div id="c">c</div><br />
当您单击div#a时,您将收到“链接a”警报,“链接b”在div#b上等等...
问题在于,如果您运行此代码,则单击每个元素将给出alert(“Link c”)作为结果,似乎只有最后一个函数变体被分配给每个div...
当然,我可以通过编辑函数以使用div的id并使用$(this)来解决它,但是出于好奇:是否有一种方法使此循环工作?通过在函数中创建和分配新函数给每个元素?
提前感谢...
$('#'+x).css('border', '1px solid #000').click(fn);
- Will Morgan