javascript如何给事件处理函数传递参数

javascript如何给事件处理函数传递参数:
在应用中可能需要给注册的事件处理函数传递参数,但是会发现好像无法实现直接传递,下面就简单介绍一下如何给事件处理函数传递参数。
先看一段代码实例:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<head>
<title>蚂蚁部落</title>
<script type="text/javascript">
function mytest(num){
  alert(num);
}
window.onload=function(){
  var bt=document.getElementById("bt");
  bt.onclick=mytest(1);
}
</script>
</head>
<body>
<input type="button" value="点击测试效果" id="bt">
</body>
</html> 

以上代码的本意是当点击按钮的时候能够为函数传递一个参数,不过这是错误的,因为函数直接执行了。
正确写法:
方式一:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<head>
<title>蚂蚁部落</title>
<script type="text/javascript">
function mytest(num){
  alert(num);
}
window.onload=function(){
  var bt=document.getElementById("bt");
  bt.onclick=function(){
    mytest(1)
  }
}
</script>
</head>
<body>
<input type="button" value="点击测试效果" id="bt">
</body>
</html> 

将函数嵌套在事件处理函数中调用,这样就可以传递参数了。
方式二:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<head>
<title>蚂蚁部落</title>
<script type="text/javascript">
function mytest(num){
  alert(num);
}
</script>
</head>
<body>
<input type="button" value="点击测试效果" onClick="mytest(1)"/>
</body>
</html> 

此种方式和方式一的原理是一样的。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=8234

更多内容可以参阅:http://www.softwhy.com/javascript/

时间: 2024-08-24 23:57:30

javascript如何给事件处理函数传递参数的相关文章

给wxPython事件处理函数传递参数

给wxPython事件处理函数传递参数 2014-04-30 07:47:08segmentfault-博客--点击数:39 最近捣鼓Python,也就自然捣鼓上了wxPython.我曾经用过Qt和Gtk+写GUI,但几乎所有的Python书都告诉我说最好用的是wxPython,我没有尝试PyQt和PyGtk就开始研究wxPython了.在Qt和Gtk+之间我更喜欢Qt,因为它跨平台做得很好,而且商业化也不错.但wxWidget给人的感觉就完全不同了. 如果说wxWidgets相对于Qt有什么优

jquery事件处理函数的参数问题:event对象和自定义参数

jquery中如果需要给按钮绑定click事件处理函数,那么我们可以使用如下的代码: $("#button1").click( function() { alert("I was clicked."); } ); 一般我们都会按照上面的写法,注册事件处理函数,很少给处理函数传递参数.但是如果我们需要事件更详细的信息,比如事件发生时鼠标的位置等,那么我们就必须要使用事件对象了. 在IE和FF浏览器下,我们可以使用event对象拿到更多的信息.在jquery中拿到eve

js中函数传递参数,究竟是值传递还是引用传递?

记住真理: js函数传递参数,不管是简单数据类型,还是引用数据类型,都是值传递!! 下面是js红包书里面的例子: function setName(obj) { obj.name = "Nicholas"; obj = new Object(); obj.name = "Greg"; } var person = new Object(); setName(person); alert(person.name); // "Nicholas" 肯定

JavaScript进阶系列02,函数作为参数以及在数组中的应用

有时候,把函数作为参数可以让代码更简洁. var calculator = { calculate: function(x, y, fn) { return fn(x, y); } }; var sum = function(x, y) { return x + y; }, diff = function (x, y) { return x - y; }; var sumResult = calculator.calculate(2, 1, sum), diffResult = calculat

【JavaScript】从调用者页面传递参数

(1).aspx <param name="initParams" value="xml=Assets/SDKConfig.xml" /> 注意:只认识initParams,其他的不认. (2)app.xaml.cs private void Application_Startup(object sender, StartupEventArgs e) { string xmlConfig = e.InitParams["xml"];

Delphi过程、函数传递参数的八种方式

Delphi过程函数传递参数的八种方式 Delphi过程.函数传递参数的八种方式,布布扣,bubuko.com

向线程函数传递参数

向线程函数传递参数在构造线程对象时即可完成.但是要记住,默认情况下是把参数拷贝到线程内部,即使在函数中使用的是引用.例如 void f(int i,std::string const &s); std::thread t(f,3,"hello");</span> 上面代码中,函数f的第二个参数是std::string,传递的是char const *会转换为string. 当使用指针指向自动变量时,要特别注意: <span style="font-s

js函数传递参数时,如果是路径类型的参数,里边包含:&#39;\&#39;字符报错

在函数中,传递的参数中有“\”字符,js会将它默认为转义字符串,如果没有出现与他匹配的转义字符串,就会缺失,例如: 将这样的一个字符串作为一个参数:C:\Program Files (x86)\MySQL\MySQL Server 5.7\data\ 传递到函数里边的值就会被默认转化为:C:Program Files (x86)MySQLMySQL Server 5.7data 如果要实现这个参数的精确传递,就需要将字符串进行处理,一般会有两种方式: ①:将字符串里边的 ‘\’ 字符替换成 ‘/

利用call与apply向函数传递参数

Js中函数对象都有call与apply两个方法属性,二者使用方法和功能一样,只是传递参数的格式不同,call逐个传递单个参数,apply一次性传递一个参数数组. 这两个方法可以改变函数的调用对象,并且向函数中传递参数.如: function send(str,speak){ speak.call(this,str); //send(~)==window.speak(str),这句话会立即调用执行此函数 } send("你好!",function(strword){ //这里以匿名函数对