基于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实现简单漂亮的Nav导航菜单效果
Mar 29 jQuery
jQuery实现菜单栏导航效果
Aug 15 jQuery
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
轻松搞定jQuery+JSONP跨域请求的解决方案
Mar 06 jQuery
如何用input标签和jquery实现多图片的上传和回显功能
May 16 jQuery
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
jQuery分组选择器简单用法示例
Apr 04 jQuery
jQuery操作事件完整实例分析
Jan 10 jQuery
jQuery 判断元素是否存在然后按需加载内容的实现代码
Jan 16 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
来自phpguru得Php Cache类源码
2010/04/15 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
常用简易JavaScript函数
2009/04/09 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
vue v-model的用法解析
2020/10/19 Javascript
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
英国景点门票网站:attractiontix
2019/08/27 全球购物
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
自考生自我鉴定范文
2013/10/01 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
数学教学随笔感言
2014/02/17 职场文书
保护环境标语
2014/06/09 职场文书
庆六一宣传标语
2014/10/08 职场文书
责任书格式
2015/01/29 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL