2018-07-19

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

1、jsp代码

<body>

<p>定义第一个添加按钮</p>

<input type="button" value="第一个按钮" id="oneAdd"/>

</br>

</br>

</br>

<p>定义一个DIV</p>

<div style="width: 400px;height: 150px;border:1px solid #000;" id="div">

</div>

</body>

2、js代码

<script type="text/javascript" src="js/jquery-2.1.1.min.js"></script>

<script type="text/javascript">

$(function(){

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

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

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

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

$("#div").html("<input type='button' value='第二个按钮' id='twoAdd' />");

})

//给第二个按钮一个添加事件,同样是使用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");

})

})

</script>

3、结果

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

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

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

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

4、总结

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,392评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,495评论 1 10
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,277评论 1 45
  • 布尔操作符!false //true!"blue" //false!0 //true!NaN //true!...
    左钱钱阅读 3,114评论 0 0
  • 一大早醒过来,就拿着手机不停的在刷朋友圈,然后就不停的在看一篇又一篇的文章,听一个又一个的音频,仿佛只有自己不断的...
    周海双阅读 3,873评论 1 0

友情链接更多精彩内容