JQuery问题与.each()和创建决策树

时间:2012-02-29 20:10:50

标签: jquery

我的代码出现问题。它应该采用一个包含4个字符串的对象,并使用一个函数,它应该创建4个用户可以单击的矩形。一旦用户点击一个矩形,我就会在它消失之前对它应用一些动画。然后我想返回被点击的确切的一个,然后用一个新函数重复这个。

道歉,如果这令人困惑,我在这里有一个JFiddle:http://jsfiddle.net/rickdonohoe/dpPj7/应该显示它。

我的问题是:

  1. 无法根据传递给函数的字符串对象更改html内容。

  2. 我不知道如何归还被点击的那个。

  3. 在each()函数中,每个div都使用类four_q1创建。我希望这个用4_q2等增加所有4如何做到这一点?

  4. 哦,这是我的第一个JFiddle所以任何问题或批评请告诉我!

    谢谢,

    瑞克

2 个答案:

答案 0 :(得分:2)

  1. 使用$.each(question_list, fn)代替$(question_list).each(fn);

  2. 你有两个选择:在你创建它们之后,将on("click")分配给每个函数内部的div,这样它就会成为你想要的元素的一个闭包;或者您可以使用data;

  3. 将对象保存在元素中
  4. each的参数是一个函数,它接收数组/对象中的索引/属性键以及相应的元素。您可以使用它来确定班级。

  5. 完整示例:

    $.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对象是个坏主意。而是尝试传递选择器。

http://jsfiddle.net/dpPj7/20/

// =====评论后======

http://jsfiddle.net/dpPj7/33/