Javascript事件运行错误的功能

时间:2016-09-16 23:40:26

标签: javascript loops events scope

我有一个for循环,它应该根据用户输入分配函数(将函数绑定到按钮)。相反,无论单击哪个按钮(取消按钮除外),都会运行相同的功能。

该功能看起来像这样......

根据以下要求,这里有一个更清晰的例子:

HTML

<button id="myButton">
 Button 1
</button>
<button id="myButton2">
  Button 2
</button>
<button id="myButton3">
  Button 3
</button>

JAVASCRIPT

 var myFunctions = {
            myButton: function(o){ alert("Button 1 pressed! (" + o +")"); },
        myButton2: function(o){ alert("Button 2 pressed! (" + o +")"); },
        myButton3: function(o){ alert("Button 3 pressed! (" + o +")"); }
    }
    function runBinds(binds){
          for(bind in binds){
                var myButton = document.getElementById(bind),
                    myCall = function(){
                        binds[bind]("Appended info");
                };
            myButton.addEventListener('click',myCall,false);
        }
    }

    runBinds(myFunctions);

Jsfiddle

With closures

Without closures

正如我之前提到的,我尝试使用闭包,但这并没有解决我的问题,所以它不是重复的。

0 个答案:

没有答案