基于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 ui sortable拖拽后保存位置
Apr 27 jQuery
使用jQuery.Pin垂直滚动时固定导航
May 24 jQuery
jquery获取transform里的值实现方法
Dec 12 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
使用jquery的cookie实现登录页记住用户名和密码的方法
Mar 13 jQuery
jquery+php后台实现省市区联动功能示例
May 23 jQuery
js/jQuery实现全选效果
Jun 17 jQuery
jQuery内容选择器与表单选择器实例分析
Jun 28 jQuery
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
jQuery实现可编辑的表格
Dec 11 jQuery
jquery实现直播视频弹幕效果
Feb 25 jQuery
jquery+css3实现的经典弹出层效果示例
May 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
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
Laravel框架集合用法实例浅析
2020/05/14 PHP
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
利用onresize使得div可以随着屏幕大小而自适应的代码
2010/01/15 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
初识Node.js
2014/09/03 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
2017/02/20 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
2019/08/12 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
Python模拟百度登录实例详解
2016/01/20 Python
你应该知道的python列表去重方法
2017/01/17 Python
Python中二维列表如何获取子区域元素的组成
2017/01/19 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
Python自动化操作实现图例绘制
2020/07/09 Python
python中selenium库的基本使用详解
2020/07/31 Python
python 实现压缩和解压缩的示例
2020/09/22 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
中英文求职信范文
2014/01/27 职场文书
群教班子对照检查材料
2014/08/26 职场文书
在职员工证明书
2014/09/19 职场文书
设备收款委托书范本
2014/10/02 职场文书
离婚协议书范本2014
2014/10/27 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server