点击事件回调函数传参

使用匿名函数

function testFun(event, str) {console.log(str);
}var test = document.getElementById('test');
test.addEventListener('click', function(event) {testFun(event, 'this is a test');
});

上面的例子给元素绑定点击事件函数的时候,使用了匿名函数,在匿名函数里面再调用testFun函数,这样可以方便给testFun函数传入参数,但这个方法看起来是那么的傻,最致命的是无法给元素解绑点击事件处理函数,实为下策!

使用bind方法

function testFun(str, event) {console.log(str);console.log(event.target === this);
}var test = document.getElementById('test');
test.addEventListener('click', testFun.bind(test, 'this is a test'));

上面的例子中,使用bind方法来给testFun函数指定this值和参数,这样也能达到给回调函数传入参数的效果,看起来会更优雅一点。但值得注意的是回调函数的最后的一个参数才是event对象。同时,这个方法依然无法解绑事件处理函数,且在IE9以下不被支持。

JQuery方法

function testFun(event, str) {console.log(event.data.str);$(this).unbind('click', testFun);
}$('#test').click({str: 'this is a test'}, testFun);

上面是使用jQuery的方法,注意,如果click事件不用传入第一个参数,那么就会当成一个模拟click事件。此方法将click第一个参数当成了event对象的一个data属性,在事件处理函数中就能够使用到传入参数,最主要的是可以通过jQuery本身的unbind方法解绑事件处理函数。

js 点击事件回调函数传参相关推荐

  1. 回调函数传参c++_流程篇 | 避免 eval String 进行回调,使用 JSB 进行手动绑定

    想要聚焦 Cocos Creator.Flutter.React Native 等跨平台开发技术实践吗?请大家积极关注我们的技术博客 https://oedx.github.io 背景 一直以来,AB ...

  2. pythonlambda回调函数_Python中如何借助lambda来给回调函数传参

    开门见山,直接从一个例子开始,假设我们在写一个GUI界面,界面上有个按钮,其功能是点击它就能得到物品A的详细描述,对应的代码如下 detailButton.clicked.connect(self.s ...

  3. x64汇编第三讲,64位调用约定与函数传参.

    目录 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 二丶x64汇编 2.1汇编详解 x64汇编第三讲,64位调用约定与函数传参. 一丶复习X86传参 在x86下我们汇编的传参如下: ...

  4. js 点击事件穿透 html,Js点击事件.html

    Js点击事件 /*Reset css*/ body{font-family:"宋体";font-size:12px;background:#fff;color:#333;margi ...

  5. C++函数传参int a,int *a,int a,const int a的区别

    C++函数传参int a,int &a,const int &a的区别 # 传参方式                  作用 int a 值传递 无法改变a的值 int *a 地址传递 ...

  6. PC端微信浏览器js点击事件失效

    **电脑端微信浏览器js点击事件失效**前段时间发现开发的一个微信公众号上一个按钮的点击事件在手机上是正常的,电脑端手机微信里却不起作用.在网上找了好久都没有找到解决办法.后来查看其它的页面的同样的点 ...

  7. JS点击事件的使用方法

    JS点击事件的使用方法 <html lang="en"><head><meta charset="UTF-8"><me ...

  8. 很基本的js点击事件和jq点击事件的写法

    js点击事件常用 获取到id <div id="box">click</div> var btn=document.getElementById('box' ...

  9. js解决动态绑定事件时不能传参的问题

    问题描述: js使用dom给元素绑定事件时如果直接传入参数, 会有传参失败并且语句会执行并没有成功绑定事件的情况 举个例子,假如我们有一个div (id="div1"), 我们想给 ...

最新文章

  1. 路由器互联端口处于不同网段的路由方法和原理
  2. AI赌神升级!无惧bluff,6人局德扑完胜世界冠军,训练只用了8天
  3. 软考-信息系统项目管理师-项目整体管理
  4. mysql 查询某一主键在那些表中中被设置为外键了
  5. java堆和栈 常量池_GitHub - han-guang-xue/difference-of-stack-heap-pool: Java中堆、栈和常量池的区别...
  6. 宿迁学计算机的学校,宿迁计算机学校
  7. mysql 切割字符串的妙用
  8. 可太惨了吧!乐视网临时股东大会仅两位董事会成员出席,6分钟内结束
  9. spark学习-20-Spark的sample理解
  10. myelclipse Servers视图报错
  11. 让div垂直居中的5种方法
  12. [翻译svg教程]Path元素 svg中最神奇的元素!
  13. QT入门-可视化UI设计
  14. 输入数字怎么变成大写python_用Python将数字转换为中文大写
  15. Android 图片处理工具类汇总
  16. tp+layui 时间戳转换
  17. 春节不出门!这三款超好评编程游戏,好玩到停不下来
  18. 网易云信直播聊天室:无上限人数系统不卡顿,是不是鱼与熊掌不能兼得?
  19. java文件中搜索的快捷键_MyEclipse中的查找快捷键
  20. 苹果4s忘记id密码怎么办_iPhone忘记ID密码怎么办?不花钱,这波操作帮你轻松解决...

热门文章

  1. 七种排序算法(C++)
  2. 网上可以打印参保证明吗?
  3. html表格单元格边框合并
  4. OPPO Find N和小米MIX FOLD 哪个好
  5. 找不到匹配的outgoing encryption 算法
  6. 无线网卡、无线上网卡、网卡、有线网卡的个人总结
  7. x38和x48是服务器芯片吗,X38不是板皇 华硕玩家国度X48独家曝光
  8. 中文语音朗读软件(read2u) v2.1 绿色
  9. 入职三年关于职场的心得体会
  10. Android 大转盘 好用的示例