我下面的代码和javascript的闭包以及匿名函数让我头疼。
for (var i = 0, len = sites.length ; i < len ; i++)
{
$("#thumb"+i).click(function() { $("#shader").show(); $("#thumbInfo"+i).show(); alert("#thumbInfo"+i); });
$("#thumbInfo"+i+" .xbutton").click(function() { $("#shader").hide(); $("#thumbInfo"+i).hide(); });
}
由于关闭,我始终为5(sites数组具有5个元素),因此所有单击处理程序都引用相同的ID。
任何解决方法?
最佳答案
您总是可以使用jQuery的each()
循环。
$.each(sites, function(i) {
$("#thumb"+i).click(function() { $("#shader").show(); $("#thumbInfo"+i).show(); alert("#thumbInfo"+i); });
$("#thumbInfo"+i+" .xbutton").click(function() { $("#shader").hide(); $("#thumbInfo"+i).hide(); });
});