基于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 相关文章推荐
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
Jun 13 jQuery
jQuery实现手势解锁密码特效
Aug 14 jQuery
使用jQuery 操作table 完成单元格合并的实例
Dec 27 jQuery
jQuery实现动态显示select下拉列表数据的方法
Feb 05 jQuery
jQuery实现的上传图片本地预览效果简单示例
Mar 29 jQuery
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
jQuery实现的模仿雨滴下落动画效果
Dec 11 jQuery
jquery+css实现Tab栏切换的代码实例
May 14 jQuery
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
Apr 04 jQuery
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
Jun 02 jQuery
如何解决jQuery 和其他JS库的冲突
Jun 22 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
linux下 C语言对 php 扩展
2008/12/14 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
PHP7多线程搭建教程
2017/04/21 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
让angularjs支持浏览器自动填表
2014/11/10 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
深入分析element ScrollBar滚动组件源码
2019/01/22 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
约瑟夫问题的Python和C++求解方法
2015/08/20 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
jupyter notebook 重装教程
2020/04/16 Python
婴儿地球:Baby Earth
2018/12/25 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
迪卡侬(Decathlon)加拿大官网:源自法国的运动专业超市
2020/11/22 全球购物
SCHIESSER荷兰官方网站:德国内衣专家
2020/10/09 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
实习证明格式范文
2014/10/14 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
2015年教研组工作总结
2015/05/04 职场文书
mysql序号rownum行号实现方式
2022/12/24 MySQL