• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > 解决给dom元素绑定click等事件无效问题的方法

解决给dom元素绑定click等事件无效问题的方法

作者:zengnificant 字体:[增加 减小] 来源:互联网 时间:2017-05-11

zengnificant通过本文主要向大家介绍了dom元素,dom元素是什么,vue获取dom元素,获取dom元素,js创建dom元素等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

之前一直遇到js插件生成的元素,click事件无效的问题,重新绑定也不行,终于找到解决方法,在此记下来。

同时加深对js事件处理机制的理解。

1. 事件被解绑

这种情况下一般不会导致click失效,但以下情况,click事件就失效了:

$(function(){
 $('.btn').unbind()
})
$('.btn').click(function(){
 //...
 })
</div>

所以,click事件要有个好习惯:

$(function(){
 $('.btn').click(function(){
 //...
 })
}) 
</div>

2. js插件异步/动态加载dom

一般含有等待时间/开始运行时间:WaitTime

此时直接绑定/监听无效:

$(function(){
 $('.container .btn').on('click',function(){
 //...
 })
}) 
</div>

解决方法1:

$(function(){
 setTimeout(function{ 
 $('.container .btn').click(function(){
  //...
  })
 //.btn 加载后事件 
 },WaitTime) 
}) 
</div>

解决方法2(事件委托,即委托给父元素):

$(function(){
 $('.container').on('click','.btn',function(){
 //...
 })
}) 
</div>

3. ajax 异步加载的dom

  • 可以在done()函数体中加click事件
  • 同2中的事件委托方法。

4. 点击链接无反应

以下代码会导致a标签有href也无法跳转

$(function(){
 $('a').on('click',function(e){
 e.preventDefault()
 //...
 })
}) 
</div>

解决方法:

$(function(){
 $('a').on('click',function(e){
 e.preventDefault()
 //...
 })
 $('a').unbind()
})
</div>

小结

1.事件绑定,事件监听,事件委托 相关链接

2.事件捕获与冒泡 相关链接

 target.addEventListener(type, listener[, options]);
 target.addEventListener(type, listener[, useCapture]);
</div>

事件捕获

父元素先发生,子元素后

事件冒泡

子元素先发生,父元素后

3.javascript执行顺序

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • vue的Virtual Dom实现snabbdom解密
  • AngularJS改变元素显示状态
  • vue动态生成dom并且自动绑定事件
  • Vue获取DOM元素样式和样式更改示例
  • 详解在Vue中通过自定义指令获取dom元素
  • 解决给dom元素绑定click等事件无效问题的方法
  • Vue.js 2.0窥探之Virtual DOM到底是什么?
  • JS判断指定dom元素是否在屏幕内的方法实例

相关文章

  • 2017-05-11jquery事件与绑定事件
  • 2017-05-11js时间控件只显示年月
  • 2017-05-11nodejs中使用HTTP分块响应和定时器示例代码
  • 2017-05-11详解nodejs微信公众号开发——1.接入微信公众号
  • 2017-05-11Android中Okhttp3实现上传多张图片同时传递参数
  • 2017-05-11浅谈Vue.js
  • 2017-05-11BootStrap3中模态对话框的使用
  • 2017-05-11JavaScript数组去重的6个方法
  • 2017-05-11浅谈JavaScript异步编程
  • 2017-05-11从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Javascript同时声明一连串(多个)变量的方法
    • angularjs指令之绑定策略(@、=、&)
    • 微信小程序 Template详解及简单实例
    • nodejs个人博客开发第五步 分配数据
    • AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
    • JavaScript与JQUERY获取元素的宽、高和位置
    • 基于jquery二维码生成插件qrcode
    • JSON与JS对象的区别与对比
    • js字符串截取函数slice()、substring()、substr()
    • 深入理解js中的加载事件

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有