dom 自定义事件_pix4D生成dom

dom 自定义事件_pix4D生成dom之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试了一下:1.事件失效的原因:(1)bind事件绑定只对dom中存在的元素有效,对于我们后来动态增加的元素是监测不到,所以绑定不了(2)同样,当你使用varaa=docu

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试了一下:

1. 事件失效的原因:

(1)bind事件绑定只对dom中存在的元素有效,对于我们后来动态增加的元素是监测不到,所以绑定不了

(2)同样,当你使用var aa = document.getElementsByTagName(“动态生成的元素”);来获取动态生成的元素的时候也是获取不到的,因为网页只会执行一次初始化绑定,之后动态生成的dom元素也是监测不到的。

2. 解决办法:

(1)在每一个动态生成的地方都再绑定多一次事件,比如这个博客里面的例子

(2)把bind改用live,因为live是实时监测的,对于新增的dom元素也是有效的(因为不断去绑定、判断,所以可能会影响Web性能问题)

(3)把bind改用delegate,因为delegate是实时监测的。

(4)在jquery1.7 起版本用on替代了bind()、live() 和 delegate() 方法。

3. 关于最近遇到的事件失效的原因:在原本的网页中(代码可见https://github.com/UFOwl/ife/tree/master/stage02/task16),我想要获取table里面动态生成的删除按钮,帮删除按钮绑定删除时间,可是删除事件失效,因为删除按钮是动态生成的,初始化事件绑定的时候,获取到的table里面的button已经是空的,所以绑定的一直都是空元素,所以点击button按钮的时候一直没有反应。

4. 最后的解决办法:先获取table,然后再绑定table的click事件(因为table是在原本已经存在的dom元素),然后当点击事件触发的时候再捕获事件的target(比如点击table里面的button,这个时候因为已经动态生成button并append进去table里面了,所以button是存在的,此时target指的是button),然后再进行相应的操作。

注意:在这里注意两个问题:

(1)table里面的元素是已经添加进入table里面了的,所以点击那个button的时候,e.target获取到的就是button

(2)为什么已经将button这些元素添加进入table里面,可是还是没能获取到呢,因为是init()这个函数初始化的时候获取table里面的button,可是此时还未进行任何操作,所以获取到的就是空,所以没绑定任何元素。

上面需要注意的两个问题要分清楚,这个是问题的关键。

5.关于bind:每次绑定事件之后事件会一直绑定着,除非用unbind解绑之后再重新绑定,要不然事件会一直存在,所以这就是为什么在做项目的时候,有时候ajax请求的结果会出现1,2,4,8这样叠加,是因为如果用了bind,每次触发事件都会绑定一次操作,所以触发第一次的时候,ajax请求一次;第二次的时候,ajax请求1+1=2次;第三次就是1+2+1=4次;第四次就是1+2+4+1=8次,以此类推。所以如果利用bind绑定事件的话,要先unbind解绑元素原本有的事件再绑定事件,才不会导致ajax请求多次。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194917.html原文链接:https://javaforall.net

(0)
上一篇 2025年10月27日 下午2:43
下一篇 2025年10月27日 下午3:15


相关推荐

  • Windows下打包安装程序

    Windows下打包安装程序windows 下打包安装程序可以使用 NSIS 或者 Wix 其中 NSIS 生成的是 exe 的安装包 WiX 生成的是 msi 的安装包 个人认为使用 WiX 方法更好 Wix 全称 WindowsInsta 属于微软的一个开源项目 目标是使用 XML 语言灵活的定制具有各种功能的安装包 需要微软的 WindowsInsta 服务支持 Wix 生成的产品为 msi 文件 这种可执行文件与 exe 文件最大的不同为 它更底层 安装文件的同时可以对系统或者其他软件进行

    2026年3月20日
    1
  • python求圆面积_python如何求圆的面积 python求圆的面积方法

    python求圆面积_python如何求圆的面积 python求圆的面积方法python 如何求圆的面积 本篇文章小编给大家分享一下 python 求圆的面积方法 代码介绍的很详细 小编觉得挺不错的 现在分享给大家供大家参考 有需要的小伙伴们可以来看看 首先我们要知道圆的面积计算公式 S r 公式中 S 为所求圆的面积 为圆周率 r 为圆的半径 示例 定义一个方法来计算圆的面积 deffindArea r PI 3 142returnPI r r 调

    2026年3月19日
    3
  • fsync fflush 相关

    fsync fflush 相关最近做保存数据到文件操作 有 2 个数据 一个是视频 一个是小数据 一样的操作函数 保存视频没有问题 但保存数据就不行 仔细查看 保存视频数据时 由于视频数据都比较大 我每收到 64kB 保存一次 没有问题 问题就出现在保存信息数据上 这个数据量比较小 一秒 10B 我不可能收到 64KB 再保存 于是我就想着 fsync 同步一下 voidtest file wr FILE g fd constuint8 tdat 10 0 1 2 3 4 5 6 7 8

    2026年3月16日
    3
  • pyqt QListView详细用法

    pyqt QListView详细用法像歌曲列表 文件列表 这种可以用 QListView 实现 例如 下面的结果 代码如下 fromPyQt5 QtWidgetsimp QWidget QVBoxLayout QListView QMessageBoxf QtCoreimport

    2026年3月17日
    2
  • 扣子 (coze) 喂饭级入门教程!3步搞懂智能体 + 工作流搭建【附详细截图】

    扣子 (coze) 喂饭级入门教程!3步搞懂智能体 + 工作流搭建【附详细截图】

    2026年3月14日
    2
  • jasypt 原理_litmp试剂

    jasypt 原理_litmp试剂文章目录一、jasypt的启动类加载二、jasypt中Encryptor、Detector和Resolver加载三、jasypt中EnableEncryptablePropertiesBeanFactoryPostProcesso四、proxy代理方式增强propertySources五、wrapper包装类方式增强propertySources六、resolver中属性值解密作者:史佳健推荐理由:文章详尽并有对应分析说明一、jasypt的启动类加载引入了jasypt-spring-boot-st

    2026年4月13日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号