Javascript传递参数到函数

时间:2013-11-21 10:10:33

标签: javascript html5 dom

我试图通过参数来实现功能。当我点击div时,它会提醒我通过的参赛者

我有2个文件

  • index.html
  • 的script.js

这是我尝试的内容

示例1

的index.html

<div id="thediv" >

的script.js

window.onload = initialize;

    //bind event listener
        function initialize(){
             document.getElementById("thediv").onclick = myFunction(" something ");
        }
    //end of bind

    //function
        function myFunction(parameter) { alert( parameter ) };
    //end of all function
  • 麻烦的是它执行的功能,没有点击

示例2

的index.html

<div id="thediv" onclick="myfunction('something')" >

的script.js

function myFunction(parameter) { alert( parameter ) };
  • yap它完成了这个但是麻烦如果我在index.html中有很多元素会很难读出哪个元素有哪个监听器
  • 我想将我的代码分成3个部分(类似于example1)
    • 视图(html元素)
    • 该元素具有哪个侦听器
    • 功能

我该怎么办?或者我可以这样做吗? (我不想使用其他图书馆)

3 个答案:

答案 0 :(得分:3)

放置()(其中包含任意数量的参数)将调用一个函数。然后将返回值(在这种情况下为undefined)指定为事件处理程序。

如果要分配功能,则需要自行传递功能。

...onclick = myFunction;

如果你想在调用它时给它参数,那么最简单的方法是创建一个新函数并分配它。

...onclick = function () {
        myFunction("arguments");
    };

答案 1 :(得分:2)

而不是指定您使用myFunction();调用函数 像这样使用它

//bind event listener
 function initialize(){
    document.getElementById("thediv").onclick = function(){
         myFunction(" something ");
   }
 }

答案 2 :(得分:2)

你的第一个解决方案逻辑绝对正常..只需要指定一个委托 ...你正在做的是调用函数..所以做这样的事情......

//bind event listener
        function initialize(){
             document.getElementById("thediv").onclick = function () { myFunction(" something "); };    
        }
//end of bind