JavaScript类& jQuery循环变量引用

时间:2014-12-14 23:13:35

标签: javascript jquery

我有循环和jQuery点击功能的功能,我想,点击后,执行特定的功能。 a.id类很重要,所以像jQuery点击定义一样。点击具有特定id的元素后,我想执行特定的功能。可以改变的只是功能b?

var a = {

    id: { "id1": function () { console.log(1) }, "id2": function () { console.log(2) }, "id3": function () { console.log(3) } },
    b: function () {

        $this = this;

        for (v in $this.id) {

            $("#" + v).click(function () {

                $this.id[v]();

            });
        }

    }

}

点击元素后,我想看id1 = 1, id2 = 2, id3 = 3。但是这段代码为每个元素写入值3。这个例子很简单。问题是我知道的变量引用,但我无法找到正确的解决方案。感谢

1 个答案:

答案 0 :(得分:1)

将其包裹在IFFE功能中。在此处阅读有关范围和IIFE的更多信息http://benalman.com/news/2010/11/immediately-invoked-function-expression/

我提供了一个与您的问题相关的示例: http://jsfiddle.net/rtmeo4nx/3/

function() {
    var $this = this;
    for (var v = 0; v <= 4; v++) {
        (function() {
            var i = v;
            $("#v" + i).on("click", function(e) {               
                e.stopPropagation();
                alert('hi' + i);
            });
        })();
    }    
}