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()点击无效内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JS通过位运算实现权限加解密

    JS通过位运算实现权限加解密

    这篇文章主要介绍了JS通过位运算实现权限加解密的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
    2018-08-08
  • JavaScript数据可视化:ECharts制作地图

    JavaScript数据可视化:ECharts制作地图

    这篇文章主要介绍了Echarts实现可视化地图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • js实现延迟加载的方法

    js实现延迟加载的方法

    这篇文章主要介绍了js实现延迟加载的方法,涉及javascript中setTimeout与setInterval方法的使用技巧,需要的朋友可以参考下
    2015-06-06
  • 原生JS实现弹幕效果的简单操作指南

    原生JS实现弹幕效果的简单操作指南

    这篇文章主要给大家介绍了关于原生JS实现弹幕效果的简单操作指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • js数据类型转换与流程控制操作实例分析

    js数据类型转换与流程控制操作实例分析

    这篇文章主要介绍了js数据类型转换与流程控制操作,结合实例形式分析了JavaScript数据类型转换与流程控制相关原理、操作技巧与使用注意事项,需要的朋友可以参考下
    2019-12-12
  • Uniapp WebView全屏导致遮挡状态栏的解决方案及注意事项

    Uniapp WebView全屏导致遮挡状态栏的解决方案及注意事项

    这篇文章主要介绍了Uniapp WebView全屏导致遮挡状态栏的解决方案及注意事项,通过动态调整WebView的布局,确保状态栏可见,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-05-05
  • 表单元素值获取方式js及java方式的简单实例

    表单元素值获取方式js及java方式的简单实例

    下面小编就为大家带来一篇表单元素值获取方式js及java方式的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • JavaScript优化if-else复杂判断问题的常用方案

    JavaScript优化if-else复杂判断问题的常用方案

    文章总结了八种常用代码优化模式,包括提前返回、卫语句、策略模式、查表法、多态、责任链模式、可选链和空值合并,并建议根据具体业务场景选择合适的优化方案,优先使用简单方案,保持一致性,考虑可读性,适度抽象,并进行充分测试,需要的朋友可以参考下
    2026-02-02
  • 让FireFox支持innerText的实现代码

    让FireFox支持innerText的实现代码

    DHTML非标准属性innerText在FireFox中的使用
    2009-12-12
  • JavaScript返回当前会话cookie全部键值对照的方法

    JavaScript返回当前会话cookie全部键值对照的方法

    这篇文章主要介绍了JavaScript返回当前会话cookie全部键值对照的方法,涉及javascript操作cookie的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04

最新评论