基于jquery的on和click的区别详解


Posted in jQuery onJanuary 15, 2018

使用jQuery写js时,有些用on写行为函数,有些用click,弄清二者区别很重要。

以下是用于测试二者区别的HTML代码。

<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
 <div>
  <h1>展示jQuery中on()和click()的区别</h1>
 </div>
 <div>
  <span>点击生成新按钮。NewOn生成的Delete按钮行为用on()实现,NewClick生成的Delete按钮行为用click()实现。</span>
 </div>
 <div class="test">
  <button class="new" id="newon">NewOn</button> 
  <button class="new" id="newclick">NewClick</button>
  <ul class="li"> 
   <li>原先的HTML元素on<button class="deleteon">Delete</button></li> 
   <li>原先的HTML元素click<button class="deleteclick">Delete</button></li> 
  </ul> 
 </div>
</body>
<script src="/static/js/jquery-3.1.1.min.js"></script>
<script src="/static/js/test.js"></script>
</html>

js文件如下:

$("#newclick").click(function(){ 
 $(".li").append('<li>动态添加的HTML元素click<button class="deleteclick">Delete</button></li>'); 
});
$("#newon").click(function(){ 
 $(".li").append('<li>动态添加的HTML元素on<button class="deleteon">Delete</button></li>'); 
});
$(".delete").click(function(){ 
 $(this).parent().remove(); 
}); 

$(".li").on('click', ".deleteon", function(){
 $(this).parent().remove(); 
})
$(".deleteclick").click(function(){ 
 $(this).parent().remove(); 
});

页面加载后,点击NewOn和NewClick按钮,页面如下图所示。

基于jquery的on和click的区别详解

现象:

原先的HTML元素点击其身后的Delete按钮就会被删除。而动态添加的HTML元素,使用click()这种写法,点击Delete按钮无法删除;使用On()方式可以。

原因:

element.click()这种写法不支持给动态元素或样式绑定事件。支持给动态元素绑定事件的是.live()和.on()。live在jQquery1.7后就不推荐使用了。使用.on()时注意,on前面的元素必须在页面加载的时候就存在DOM里面。

以上这篇基于jquery的on和click的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
基于jQuery实现文字打印动态效果
Apr 21 jQuery
jQuery树插件zTree使用方法详解
May 02 jQuery
jQuery extend()详解及简单实例
May 06 jQuery
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
May 08 jQuery
jQuery遮罩层实例讲解
May 11 jQuery
Jquery中attr与prop的区别详解
May 27 jQuery
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
JQuery EasyUI的一些常用组件
Jul 12 jQuery
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 jQuery
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
jQuery cookie的公共方法封装和使用示例
Jun 01 jQuery
vue-cli webpack 引入jquery的方法
Jan 10 #jQuery
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 #jQuery
Vue+jquery实现表格指定列的文字收缩的示例代码
Jan 09 #jQuery
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 #jQuery
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 #jQuery
JQuery实现table中tr上移下移的示例(超简单)
Jan 08 #jQuery
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
Jan 08 #jQuery
You might like
PHP学习之数组值的操作
2011/04/17 PHP
PHP写的求多项式导数的函数代码
2012/07/04 PHP
理解PHP中的stdClass类
2014/04/18 PHP
彻底删除thinkphp3.1案例blog标签的方法
2014/12/05 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
JS 统计时间
2021/03/09 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
Bootstrap编写导航栏和登陆框
2016/05/30 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
原生js开发的日历插件
2017/02/04 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
python编写暴力破解FTP密码小工具
2014/11/19 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
Python字典生成式、集合生成式、生成器用法实例分析
2020/01/07 Python
英国鲜花递送:Blossoming Gifts
2020/07/10 全球购物
管道维修工岗位职责
2013/12/27 职场文书
婚前协议书范本两则
2014/10/16 职场文书
担保贷款承诺书
2015/04/30 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS