jquery的.click()点击事件为什么无效,on('click',function())如何使用?

 更新时间:2023年08月06日 10:10:49   作者:zhouzy539  
jquery的.click()点击事件,通常都是可以正常使用的,有时选中的选择器被点击时无法触发回调函数,这是为什么呢?改成on绑定click就可以了吗?面对这样的情况,on('click',function())应该如何使用?

jquery的.click()点击事件,通常都是可以正常使用的。有时选中的选择器被点击时无法触发回调函数。这是为什么呢?改成on绑定click就可以了吗?面对这样的情况,on('click',function())应该如何使用?

.click()无效的原因

$(选择器).click(fn):当选中的选择器被点击时触发回调函数fn。

只针对与页面已存在的选择器。如果该选择器是使用append(),prepend和 after(),before() 等方法后期动态添加的,.click()无效。

on('click',function())的正确使用

改成on('click',function())就可以使用了吗?

下面示例test元素为动态添加

$(".test") .on('click' , function () {
$(this).parent().remove()
})

点击无效,因为通过on或click绑定的事件只对当前存在的元素有效, 即on前面的元素必须在页面加载的时候就已经存在dom里,所以后添加的类名为.test的按钮无效。

修改成下面示例

$(".login") .on('click' , '.test',function () {
$(this).parent().remove()
})

可以像这样把事件绑定到.test的父元素(.login)上(事件委托),注意父元素必须是已经存在dom里,而不是后面动态添加的。

可以直接使用$(document).on('click','要选择的元素',function(){})

 $().on()的知识点补充:

 1、$().on()支持直接在目标元素上绑定事件,也支持在目标元素的祖辈元素上委托绑定。在事件委托绑定模式下,即使是执行on()函数之后新添加的元素,只要它符合条件,绑定的事件处理函数也对其有效。

此外,该函数可以为同一元素、同一事件类型绑定多个事件处理函数。触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。

要删除通过on()绑定的事件,请使用off()函数。如果要附加一个事件,只执行一次,然后删除自己,请使用one()函数。

该函数属于jQuery对象(实例)。

2、从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind()、 delegate()、 live()等事件函数。$().bind()直接绑定在元素上,和click,blur,mouseon一样的点击事件。$().live()是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到document DOM节点上。$().delegate()是更精确的小范围的使用事件代理。$().on()结合了这三个方法的优势摒弃了劣势。

3、该函数可以为同一元素、同一事件类型绑定多个事件处理函数。触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。

4、阻止事件冒泡和事件委托的方法:return false。在事件的处理中,可以阻止默认事件和冒泡事件。

event.preventDefault()在事件的处理中,可以阻止默认事件但是允许冒泡事件的发生。

event.stopPropagation().。在事件的处理中,可以阻止冒泡但是允许默认事件的发生。

到此这篇关于jquery的.click()点击事件为什么无效,on('click',function())如何使用?的文章就介绍到这了,更多相关click()点击无效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript中检查对象property的存在性方法介绍

    JavaScript中检查对象property的存在性方法介绍

    这篇文章主要介绍了JavaScript中检查对象property的存在性方法介绍,本文讲解了4种方法来检查某个对象o是否拥有property x,需要的朋友可以参考下
    2014-12-12
  • HTML页面登录时的JS验证方法

    HTML页面登录时的JS验证方法

    这篇文章主要介绍了HTML界面登录时的JS验证方法,需要的朋友可以参考下
    2014-05-05
  • JS中用try catch对代码运行的性能影响分析

    JS中用try catch对代码运行的性能影响分析

    要捕获JavaScript代码中的异常一般会采用 try catch,不过try catch的使用是否是对代码性能产生影响呢?答案是肯定有的,但是有多少不得而知。下面这篇文章就给大家详细介绍了在JS中用try catch对代码运行的性能影响,有需要的朋友们可以参考借鉴。
    2016-12-12
  • 基于JS+Canvas的lucky-canvas 抽奖功能

    基于JS+Canvas的lucky-canvas 抽奖功能

    一个基于 Js + Canvas 的大转盘和九宫格和老虎机抽奖,使用lucky-canvas 功能可以自由配置,多端适配的特点,本文通过实例代码给大家详细介绍抽奖方法,感兴趣的朋友一起看看吧
    2022-06-06
  • Bootstrap警告(Alerts)的实现方法

    Bootstrap警告(Alerts)的实现方法

    这篇文章主要为大家详细介绍了Bootstrap警告(Alerts)的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • CodeMirror实现代码对比功能(插件react vue)

    CodeMirror实现代码对比功能(插件react vue)

    这篇文章主要介绍了CodeMirror实现代码对比功能,用到的插件有vue或者react都需要这一步且同样的下载方式,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • JS中正则表达式只有3种匹配模式(没有单行模式)详解

    JS中正则表达式只有3种匹配模式(没有单行模式)详解

    下面小编就为大家带来一篇JS中正则表达式只有3种匹配模式(没有单行模式)详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • JS实现滚动条触底加载更多

    JS实现滚动条触底加载更多

    这篇文章主要介绍了JS滚动条触底加载更多,需要的朋友可以参考下
    2019-09-09
  • 不要在cookie中使用特殊字符的原因分析

    不要在cookie中使用特殊字符的原因分析

    参数name需要遵循规范RFC2109,也就是说name参数只能包含字母或者数字,不能包含逗号、分号、空格及美元符号。cookie的name属性设置之后不能被修改。
    2010-07-07
  • 关于JavaScript奇怪又实用的六个姿势

    关于JavaScript奇怪又实用的六个姿势

    这篇文章主要给大家介绍了关于JavaScript奇怪又实用的六个姿势,这些技巧和建议是我平常在开发项目上会用到的,希望能让大家学到知识,需要的朋友可以参考下
    2021-10-10

最新评论