基于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插件开发发送短信倒计时功能代码
May 09 jQuery
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
webpack写jquery插件的环境配置
Dec 21 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
jQuery实现table表格checkbox全选的方法分析
Jul 04 jQuery
jQuery中each遍历的三种方法实例分析
Sep 07 jQuery
jQuery实现上下滚动公告栏详细代码
Nov 21 jQuery
jquery实现动态改变css样式的方法分析
May 27 jQuery
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 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文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
jquery得到font-size属性值实现代码
2013/09/30 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
layui写后台表格思路和赋值用法详解
2019/11/14 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
微信小程序用户登录和登录态维护的实现
2020/12/10 Javascript
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
图文详解python安装Scrapy框架步骤
2019/05/20 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
运动服饰每月订阅盒:Ellie
2018/04/29 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
实现向右循环移位
2014/07/31 面试题
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
大学生毕业的自我鉴定
2013/11/13 职场文书
党委书记岗位职责
2013/11/24 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
2014年人事科工作总结
2014/11/19 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
终止合同协议书范本
2016/03/22 职场文书
Python 语言实现六大查找算法
2021/06/30 Python