基于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加密密码到cookie的实现代码
Apr 18 jQuery
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
jQuery实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
简单实现jQuery弹幕效果
May 06 jQuery
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
jQuery实现表单动态添加与删除数据操作示例
Jul 03 jQuery
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
Jun 18 jQuery
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
May 19 jQuery
jQuery实现带进度条的轮播图
Sep 13 jQuery
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
JQuery绑定事件四种实现方法解析
Dec 02 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删除文件夹的三种方法
2013/06/09 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
2016/05/21 Javascript
jQuery UI结合Ajax创建可定制的Web界面
2016/06/22 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
js重写alert事件(避免alert弹框标题出现网址)
2020/12/04 Javascript
Python subprocess模块学习总结
2014/03/13 Python
Python变量赋值的秘密分享
2018/04/03 Python
Linux下多个Python版本安装教程
2018/08/15 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
Python如何把字典写入到CSV文件的方法示例
2020/08/23 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
专业毕业生个性的自我评价
2013/10/03 职场文书
护理自荐信范文
2013/10/05 职场文书
农场厂长岗位职责
2013/12/28 职场文书
房产委托公证书样本
2014/04/04 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
2014年四风问题自我剖析材料
2014/09/15 职场文书
2014年村官工作总结
2014/11/24 职场文书
加薪通知
2015/04/25 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
Go各时间字符串使用解析
2021/04/02 Golang
MySQL transaction事务安全示例讲解
2022/06/21 MySQL