一、Jquery实现点击事件的四种写法

来自:https://blog.csdn.net/liutianjie/article/details/85112787

1. $(".tab").click(function () {  })

2. $(".tab").on("click",function () {  })

3. $(document).on("click", ".tab",function () {  })

4. 使用<οnclick="">触发函数

以上四种方法在不同设备上的可行程度

自测。

3>2>1>4

二、jquery 给动态生成的标签绑定事件的几种方法总结

来自:https://www.jb51.net/article/135369.htm?utm_medium=referral

<body><!-- 下面是用纯动态方式生成标签 --><div id="d2">生成a标签</div><div id="d3"><input type="button" value="生成a标签" id="btn" /></div>
</body>
<script>$(function(){$('#btn').bind('click', function(event) {/* 在添加标签的同时给添加的标签绑定点击事件 */$("<li>Hello</li>").appendTo("#d2");});///bind方法对于动态添加的标签不好使,只对已经存在的静态标签好用$('li').bind('click', function(event) {alert("haha"); ///根本不会触发这个方法});})
</script>

点击按钮,就会在d2中添加一个li标签,这个可以。

但是,如果这样在初始化时,用bind方法给将来要动态生成的li标签绑定方法是无效的,点击生成的li标签,没有任何反应。

因为bind方法只能给在执行它时已经存在的静态标签jq对象绑定事件,对未来动态添加的标签是无效的。

这时,可以有几种方法来解决这个问题:

方法一:

    <script>$(function() {///点击按钮,给d2动态添加标签$('#btn').bind('click', function() {/* 在添加标签的同时给添加的标签绑定点击事件 */$("<li onclick='show()'>Hello</li>").appendTo("#d2");});})function show() {alert($(this).text());///这样打印出的是空的,没有任何东西,但是方法是会触发的(不能这样打印自己)alert("哈哈");}</script>

这种方法是在动态拼接时就拼接好js原生的要触发的事件,然后把事件方法定义在script标签中。这种方法可以触发li的点击事件。但是如果要用alert($(this).text())这种打印标签自己本身信息的东西的方法,是没有任何结果显示的。这个即使是静态的标签打印自己也是不会有显示的。

要解决这个问题,可以用下面两种方法。

方法二:

<script>$(function(){$('#btn').bind('click', function(event) {/* 在添加标签的同时给添加的标签绑定点击事件 */$("<li>Hello</li>").appendTo("#d2").bind('click', function() {/* 显示标签的内容 */alert($(this).text()); ///这种方式也可以正常打印出 hello});}); })
</script>

这种方式是可以解决上面问题的。虽然它用的也是bind方法,但是注意,它是先有目的标签对象然后才调用的bind方法,所以也是好用的。而且它居然可以正常打印自己的信息,非常厉害。

方法三:(废)

<script>$(function(){$('#btn').bind('click', function() {/* 在添加标签的同时给添加的标签绑定点击事件 */$("<li>Hello</li>").appendTo("#d2");});///bind方法对于动态添加的标签不好使,只对已经存在的静态标签好用///用live方法才好用$('li').live('click', function() {alert($(this).text());///注意,用live还可以这样写,结果是正常的alert("haha");});///通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)$('#d1').live('click', function() {///对于静态和动态创建的标签都好使alert($(this).text());///注意,用live还可以这样写,结果是正常的.这是非常重要的alert("haha");});})</script>

注:关于live方法的使用问题

定义和用法

live() 方法在 jQuery 版本 1.7 中被废弃,在版本 1.9 中被移除。请使用 on() 方法代替。

live() 方法为被选元素添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

通过 live() 方法添加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。

提示:如需移除事件处理程序,请使用 die() 方法。(die()在版本 1.9 中被移除。移除所有通过 live() 方法添加的事件处理程序)

语法

$(selector).live(event,data,function)

jQuery中live()方法到on()方法的转变写法:https://blog.csdn.net/hu1010037197/article/details/79646974  作者: HaleyTiger

jquery 动态按钮绑定点击事件相关推荐

  1. jquery动态渲染绑定点击事件不生效

    原因:动态添加的HTML元素是在CSS,JS代码加载完成后再渲染的HTML页面.浏览器解析这些通过ajax请求到后台返回的数据,再根据返回的结果动态生成HTML页面时,这时绑定事件的标签元素还没有生成 ...

  2. 【JavaScript】按钮绑定点击事件-onCliek事件

    [JavaScript]按钮绑定点击事件-onCliek事件 <button type="submit" id="btn">btn</butt ...

  3. 按钮绑定点击事件-onClick事件

    按钮绑定点击事件-onClick事件 <button type="submit" id="btn">btn</button> 1. 第一 ...

  4. JavaScript给按钮绑定点击事件(onclick)的方法及js常见事件

    本文实例讲述了JavaScript给按钮绑定点击事件(onclick)的方法.分享给大家供大家参考.具体分析如下: 我们可以通过设定按钮的onclick属性来给按钮绑定onclick事件 <!D ...

  5. html按钮绑定点击事件无效,jquery添加的html元素按钮为何不执行类样式绑定的click事件...

    代码举例:jquery 更多按钮:ajax json 点击按钮添加一行文本框和"提交"按钮:(没有问题,能够正常添加)服务器 $(".addMore").cli ...

  6. JS中绑定事件的5种方式——以按钮绑定点击事件为例

    按钮 <button type="submit" id="btn">btn</button> 1. 第一种: $("#btn& ...

  7. js按钮绑定点击事件

    1.第一种 $("#btn").click(function(){操作 }) 2.第二种 document.getElementById('#foo').addEventListe ...

  8. javascript动态生成按钮并绑定点击事件

    前一个多月公司的前端开发人员离职,公司一直在招前端,基本上每天都有几个来面试的人,就这个面试频率,也才招了一个多月才招到.绝大部分都是死在了一道上机面试提上.题目很基础,但也很考基本功,基本上才3%左 ...

  9. [Swift]最强UIButton解析 | #selector()绑定点击事件

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

最新文章

  1. mysql修改校对集_MySQL 教程之校对集问题
  2. OO Design之SOLID原则
  3. python查看数据类型nonetype_python 查询数据库数据 NoneType报错
  4. android高德地图自定义带数字marker图标,自定义图标-点标记-示例中心-JS API 示例 | 高德地图API...
  5. Codechef REBXOR HYSBZ - 4260(01字典树+区间异或最大)
  6. 同一台电脑安装python2python3
  7. java 树形图构建
  8. mysql导出结构及数据结构,Mysql导出数据结构 or 数据
  9. android 按钮事件添加事件吗,android为按钮添加事件的三种方法
  10. C++算法学习(力扣:面试题 16.04. 井字游戏)
  11. 【BZOJ】【1010】【HNOI2008】玩具装箱Toy
  12. 简单细胞自动机代码实现
  13. 深度学习入门之txt文本文件转换为npz文件
  14. windows10家庭中文版设置共享文件密码访问
  15. 未被授权查看该页 HTTP 错误 401.3 - 未经授权
  16. 《白雪歌送武判官归京》古诗鉴赏
  17. 我的大脑越来越喜欢那些碎片化的、不用思考的文章了!
  18. 国产linux凝思4.2系统多网卡指定路由配置
  19. 学习Python的心得体会——阜阳师范大学 21级大数据管理与应用1班的同学不要抄哦
  20. Python-pydicom读取dcm文件报错-2021.6.5

热门文章

  1. 信管1132班32 章泳涛 数据结构课程设计
  2. MySQL INSERT插入条件判断:如果不存在则插入
  3. 大流行清楚地表明,我们需要完全自动化的豪华共产主义
  4. car cdr cadr 服务器
  5. 9月5日云栖精选夜读 | 对比来了!Julia 能打败 Python 和 R 成最终赢家吗?
  6. 【Matlab系列】之基于元胞自动机的城市规划(程序修正)
  7. 让opencv输出人脸检测的得分(置信率),找出一些和脸比较像但是不是脸的负样本
  8. 什么是网络流量劫持?揭秘详解黑客劫持的攻击手段与防御方法
  9. Visual Studio 2015 提示安装包损坏或丢失
  10. Rasa学习笔记1-rasa响应消息的步骤和名词解释