2013-11-21 167 views
1

我尝试将参数传递给函数。当我点击的div就会提醒paramater我通过Javascript将参数传递给函数

我有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) }; 
  • 邑与此完成,但麻烦,如果我有很多元素的index.html它会痛读取哪个元素有哪个听众
  • 我想将我的代码分成3个部分(similiar与例1)
    • 视图(HTML元素)
    • 元素有哪些听众
    • 功能

我应该怎么办?或者我可以这样做? (我不希望使用另一个库)

+0

您是否包含.js文件?如果你在script.js中添加了一个警报,它会弹出吗? –

+0

是的。我正确地添加它 – ilike

回答

2

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

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

配售()(在任何数量的参数)将调用功能。然后返回值(在这种情况下为undefined)将被分配为事件处理程序。

如果你想分配一个函数,那么你需要传递函数本身。

...onclick = myFunction; 

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

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

感谢它很好的解释。所以如果我想传递参数,并且想要将脚本和元素分开以使其更具可读性,那么我能做的最好的事情就是在我的js文件中创建第二个代码? – ilike

2

而是分配的调用与myFunction(); 功能使用方法如下