【发布时间】:2014-10-01 03:15:06
【问题描述】:
我需要一些帮助。我正在尝试遍历一些 Json 项目,使用项目中的一些信息创建一些 li,但还为 li 附加点击处理程序,但将值作为参数传输。
问题是该参数的最后一个值是为列表中的 li 设置的。根据我的搜索,我了解到它与 javascript 闭包有关,但似乎无法理解如何修复它。
我正在使用 jQuery,代码如下:
for (var i = 0; i < items.length; i++)
{
// information that will be displayed for each video
var entry = items[i];
var title = entry.title;
var image = entry.thumbnail.hqDefault;
var id = entry.id;
var li = $("<li class='video-single'>");
li.append("<img src='" + image + "' alt='" + title + "'>");
li.append("<h4>" + title + "</h4>");
$(li).click(function() {
displayPopUp(id);
});
ul.append(li);
}
谁能帮我修复这个代码?
最好的问候,马吕斯。
【问题讨论】:
-
$(li)没有任何意义,也许你想要$('li')?我的意思是.. 你做错了,jQuery 需要一个类或一个元素,而不是整个标签。var li = $("<li class='video-single'>");应该只是$('.video-single'):) 并且此时$(li)可以替换为li;)
标签: javascript jquery loops closures handler