我的代码出现问题。它应该采用一个包含4个字符串的对象,并使用一个函数,它应该创建4个用户可以单击的矩形。一旦用户点击一个矩形,我就会在它消失之前对它应用一些动画。然后我想返回被点击的确切的一个,然后用一个新函数重复这个。
道歉,如果这令人困惑,我在这里有一个JFiddle:http://jsfiddle.net/rickdonohoe/dpPj7/应该显示它。
我的问题是:
无法根据传递给函数的字符串对象更改html内容。
我不知道如何归还被点击的那个。
在each()函数中,每个div都使用类four_q1创建。我希望这个用4_q2等增加所有4如何做到这一点?
哦,这是我的第一个JFiddle所以任何问题或批评请告诉我!
谢谢,
瑞克
答案 0 :(得分:2)
使用$.each(question_list, fn)
代替$(question_list).each(fn)
;
你有两个选择:在你创建它们之后,将on("click")
分配给每个函数内部的div,这样它就会成为你想要的元素的一个闭包;或者您可以使用data
;
each的参数是一个函数,它接收数组/对象中的索引/属性键以及相应的元素。您可以使用它来确定班级。
完整示例:
$.each(question_list, function(key, element) {
$('<div class="four_q1">' + element + '</div>')
.addClass("four_q" + key)
.on("click", function() {
// element is accessible here
})
.appendTo(container);
current++;
}
答案 1 :(得分:2)
我搞砸了,剥掉了一些垃圾,然后得到了......它应该让你朝着正确的方向开始。
请记住,您无法以标准格式解析每个元素的对象,请尝试使用数组。 另外,传递jQuery对象是个坏主意。而是尝试传递选择器。
// =====评论后======