JS:通过for ... in循环动态生成onclick函数,只占用object中的last属性

时间:2015-01-26 16:27:21

标签: javascript

我已阅读详细说明如何使用onclick = function(){};动态生成onclick事件的帖子。

但是,我无法弄清楚如何成功地将参数传递给这个匿名onclick函数中的函数

http://jsfiddle.net/2f9qq931/

<div id="container"></div>

<script>

function subFunction(arg) {
    console.log(arg);
}

function myFunction() {

    var container = document.getElementById("container");

    var list = {
        "one": "cat",
        "two": "dog",
        "three": "fish"
    };

    for (item in list) {
        var clickable = document.createElement("div");
            clickable.innerHTML = list[item];
            clickable.onclick = function() {
                subFunction(item);
            }
        container.appendChild(clickable);
    }
}

myFunction();

</script>

这应该给我

<div>cat</div>
<div>dog</div>
<div>fish</div>

点击每个div后,控制台将记录one twothree

...但是控制台只记录three。如何让subFunction正确记录对象属性?

0 个答案:

没有答案