首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用js动态添加点击事件时,click与onclick的区别

今天在做项目的时候遇到了一个问题,就是通过js动态绑定事件的问题。在网上收索了下,然后自己写了一个个很简单的DOM实验了一下!

1、html代码

定义第一个添加按钮

定义一个DIV

2、js代码

$(function(){

//给添加按钮,首先使用click的方式

$("#oneAdd").click(function(){

//在div里面添加第二个按钮

console.log("点击了第一个按钮")

$("#div").html("");

})

//给第二个按钮一个添加事件,同样是使用click的方式

//第一个方法

/*$("#twoAdd").click(function(){

console.log("点击了第二个按钮")

})

//第二个方法

$("#twoAdd").on("click",function(){

console.log("点击了第二个按钮")

})*/

//第三个方法

$("#div").on("click","#twoAdd",function(){

console.log($(this).attr("type"))

//取消按钮一的点击事件

$("#oneAdd").off("click");

})

})

3、结果

点击第一个按钮可以正常触发cilck事件,

当启用方法一时,按钮无法正常触发click事件

当启用方法二时,按钮无法正常触发click事件

当启用方法三时,按钮可以正常触发click事件

4、总结

1、在页面初始化的时候已经给定固定的id时,cilck和onclick都可以正常使用;

2、当页面动态加载一个id时,使用click将失去作用,必须使用onclick才可以正常运行;

3、element.click()这种写法不支持给动态元素或样式绑定事件。支持给动态元素绑定事件的是.live()和.on()。live在jQquery1.7后就不推荐使用了。使用.on()时注意,on前面的元素必须在页面初始化的时候就存在静态页里面,这也是为什么方法而不能正常使用的原因。

写在最后

最近经常有很多程序员朋友问我有没有什么学习资料,尤其是前端还有php的。因为本人是学全栈的,所以手里是有一些前端还有PHP全套视频学习资料。这些资料绝对比那些在群里漫天飞的资料强多了。相信看完这些,你绝对可以找到一份好工作!

为了感谢大家的支持,今天我在这里统一说下吧:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180120A07FUP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券