首页
学习
活动
专区
圈层
工具
发布

JQuery——动态添加元素导致点击事件失效

前言 因为博皮当前版本有人反馈文章中标题导航点击无法生成; jquery-click-invalid: https://codesandbox.io/s/jquery-click-invalid-forked-xpt352...内容 一开始我以为是svg导致的点击事件失效,但是看来下代码结构,发现两者并不关联; 开始觉得问题应该出现在.html()方法上,因为文章这块在博皮上是没做什么调整的,所以直接看博客园的blog-common.min.js...; 通过显示目录导航关键字进行搜索,就发现了关键之处,JQuery动态的添加元素,导致事先绑定的click事件失效了,因为.click只适用于静态元素; ?...既然问题找到了,那修复起来就很快了; 因为我们无法改变blog-commom.min.js,所以通过改变自己博皮代码进行修复; 原来代码 通过.html()进行组合,这样导致button对应的click事件失效

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    jQuery 事件

    keyup focus scroll mouseleave blur unload 事件绑定 文档装载完成后,如果打算为元素绑定事件来完成某些操作,则可以使用on()方法来对被选元素及子元素上添加一个或多个事件处理程序...规定要从被选元素移除的一个或多个事件或命名空间。由空格分隔多个事件值。必须是有效的事件。 childSelector 可选。...规定当事件发生时运行的函数。 map 规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。...该方法给 API 带来很多便利,我们推荐使用该方法,它简化了 jQuery 代码库。 注意:如需移除指定的事件处理程序,当事件处理程序被添加时,选择器字符串必须匹配 on() 方法传递的参数。...DOM 元素 event.data 包含当前执行的处理程序被绑定时传递到事件方法的可选数据 event.delegateTarget 返回当前调用的 jQuery 事件处理程序所添加的元素 event.isDefaultPrevented

    3.9K70

    jQuery 事件

    jQuery 是为事件处理特别设计的。 ---- 什么是事件? 页面对不同访问者的响应叫做事件。 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。 实例: 在元素上移动鼠标。...常见 DOM 事件: 鼠标事件 键盘事件 表单事件 文档/窗口事件 click keypress submit load dblclick keydown change resize mouseenter...keyup focus scroll mouseleave blur unload hover jQuery 事件方法语法 在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery...}); ---- 常用的 jQuery 事件方法 $(document).ready() $(document).ready() 方法允许我们在文档完全加载完后执行函数。...该事件方法在 jQuery 语法 章节中已经提到过。 click() click() 方法是当按钮点击事件被触发时会调用一个函数。 该函数在用户点击 HTML 元素时执行。

    3.1K50

    jQuery事件委托

    在jQuery中,事件委托是一种优化事件处理的技术,它利用事件冒泡的机制,将事件处理程序绑定到一个父级元素上,从而减少事件处理函数的数量,并实现对动态添加的子元素的事件处理。什么是事件委托?...处理动态添加的元素:当页面上的元素是通过动态方式添加到文档中时,事件委托可以自动为这些新添加的元素绑定事件处理程序,而无需手动重新绑定。...提高性能:由于事件委托将事件处理程序绑定到父级元素上,避免了为每个子元素都绑定事件处理程序的开销,从而提高了性能。如何使用事件委托?在jQuery中,我们可以使用on()方法结合选择器来实现事件委托。...通过事件委托,无论是已存在的元素还是后续动态添加的元素,都会共享同一个事件处理程序,实现了统一的事件管理。...事件委托适用于以下场景:当页面上的元素是通过动态方式添加到文档中时。当需要为多个子元素绑定相同的事件处理程序时。当需要减少事件处理函数的数量,提高性能和可维护性时。

    2.1K10

    jquery基础事件

    二.Query 通过.bind()方法来为元素绑定这些事件。可以传递三个参数:bind(type,[data],fn): type 表示一个或多个类型的事件名字符串....前提:jquery包的引入 准备的html:待续 第一部分:添加绑定事件: bind() 1.匿名函数 //使用点击事件 $('input').bind('click',function(){ //...3.同时绑定多个事件 //可以同时绑定多个事件 $('input').bind('mouseout mouseover', function(){ //移入和移出分别执行一次 $('div')....html(function(index,value) { returnvalue+'1'; }); }); 4.对象键值对绑定多个参数(函数) //通过对象键值对绑定多个参数 $('input...//删除所有当前元素的事件 2.删除指定的事件 //使用 unbind 参数删除指定类型事件 $('input').unbind('click'); //删除当前元素的 click 事件 3.

    1.7K30

    如何实现动态添加的元素添加点击事件

    在页面开发过程中常常遇到需要动态添加元素,然后给这一元素绑定相关事件的情况,这种情况下一般需要给元素加上相关属性,然后写这些元素的事件函数即可。动态添加的元素怎么绑定事件呢?...原生JavaScript 原生JavaScript主要有2种实现方式,第一种是在动态添加的html代码中添加oclick事件,然后传递一个唯一的参数来判断点击的是哪个,然后做相应的操作。...第二种是通过事件委托的原理进行处理,事件委托将一个 事件监听器实际上绑定到整个容器,然后每个列表项被点击就可以访问,这样效率更高。...实现 从 jQuery 1.7 开始,您应该使用on的方式,语法如下: $(staticAncestors).on(eventName, dynamicChild, function() {}); 解释...该事件附加到staticAncestors应处理的元素的静态父级 ( )。 每次在此元素或后代元素之一上触发事件时,都会触发此 jQuery 处理程序。

    5.6K20
    领券