Jquery中on绑定的一些小坑
---恢复内容开始---
今天我们来说说关于JQuery中事件绑定中on绑定的一些小问题,直接上代码了,大家拷下去就可以用
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
margin: ;
padding:
} li {
list-style: none
} .ul_one,
.ul_two {
overflow: hidden;
float: left;
margin-left: 400px;
margin-top: 200px;
} .ul_one>li,
.ul_two>li {
text-align: center;
height: 40px;
width: 120px;
background-color: yellow;
border: 1px solid gray;
line-height: 40px;
} .ul_two>li {
background-color: green;
}
p{color: green;font-size: 20px;clear:both;margin-left: 300px;margin-top: 20px}
</style>
</head> <body>
<ul class="ul_one">
<li>a1</li>
<li>a2</li>
<li>a3</li>
<li>a4</li>
</ul> <ul class="ul_two">
<li>b1</li>
<li>b2</li>
<li>b3</li>
<li>b4</li>
</ul>
<p>当我们在on函数的参数里面传入了子元素的参数 on的绑定机制类似于事件绑定,所以我们才不能移除某个子元素的事件</p>
<p>而当我们不传入子元素的参数,on的绑定机制相当于循环绑定,所以此时我们可以移除某个子元素的事件</p>
<p>注意:需要引入JQuery,打开控制台看输出,打开源码看注释</p>
</body> </html>
<script src="jquery-1.11.3.js"></script>
<script>
//JQuery中on绑定的一些小坑
// 然后用on来对两个ul进行绑定 // 这种方法将第二个参数填入 即将子元素参数填入
$(".ul_one").on("click", "li", function () {
console.log(this)
//可以看到事件已经绑定上
})
//现在尝试给第一个子元素移除事件
$(".ul_one").children().eq().off("click");
// 你会发现根本移除不掉 // 可以对未来元素实现绑定
var newli1 = $("<li>a未来元素</li>");
$(".ul_one").append(newli1) // 由于on的第二个参数是可选参数我们来试试换种写法
$(".ul_two>li").on("click", function () {
console.log(this)
})
// 来,我们现在移除某个子元素的事件
$(".ul_two").children().eq().off("click");
//你会发现现在可以移除掉第一个子元素的事件 //不能对未来元素实现绑定
var newli2 = $("<li>b未来元素</li>");
$(".ul_two").append(newli2) // 重要 重要
// 那为什么会造成这种情况呢 // 当我们在on函数的参数里面传入了子元素的参数 on的绑定机制类似于事件绑定,所以我们才不能移除某个子元素的事件,能对未来元素实现绑定 // 而当我们不传入子元素的参数,on的绑定机制相当于循环绑定,所以此时我们可以移除某个子元素的事件,但不能实现对未来元素实现绑定
</script>
---恢复内容结束---
---恢复内容结束---
Jquery中on绑定的一些小坑的更多相关文章
- jquery-10 jquery中的绑定事件和解绑事件的方法是什么
jquery-10 jquery中的绑定事件和解绑事件的方法是什么 一.总结 一句话总结:bind(); unbind(); one(); 1. jquery中的绑定事件和解绑事件的方法是什么? bi ...
- 关于JQuery中$.data绑定数据原理或逻辑
问题: JQuery中,对于.data([key],[value])函数,当使用其进行数据绑定时,假设要绑定的数据是“引用数据类型”,也就是对象:那么.data函数绑定的是该对象的副本还是该对象的一个 ...
- C#中的Infinity有个小坑
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天家里有事,上网也不方便,就没有推送文章.今天很累,也不长篇大论了.简单介绍一下最近遇到的 ...
- !!!jQuery中事件绑定 推荐使用.delegate()或者live()
jQuery中的.bind()..live()和.delegate()之间区别分析 参考:http://www.jb51.net/article/27309.htm DOM树 首先,可视化一个HM ...
- Python中需要注意的一些小坑
Python小知识 # a = a + b /a += b 有时是不一样的 a=[1,2,3] b = a a = a + [4,5,6] # a=[1,2,3] # b = a # a += ...
- 关于jquery中on绑定click事件在苹果手机失效的问题(巨坑啊)
用一个div当做了一个按钮来使用. <div class="button"> <div class=" next_button button_left ...
- jquery中on绑定click事件在苹果手机失效问题解决(巨坑啊)
描述:用一个div写一个按钮,并给这个按钮添加一个点击事件,在安卓机器上一切正常,但是在苹果机型上会出现点击事件失效. <!DOCTYPE html> <html lang=&quo ...
- jquery中on绑定事件
之前项目中动态创建的标签元素 在绑定事件的时候 都是无效 无论如何都不能触发 eg:在页面加载完成之后 再由脚本动态创建的<div>元素 在绑定事件的时候 例如click事件 ...
- jQuery中事件绑定到bind、live、delegate、on方法的探究
1. 给页面上的某个元素绑定事件,最初采用下面的方式实现: $(‘selector’).click(function(){ //code }); 缺点: 不能同时绑定多个事件,不能绑定动态的元素. 后 ...
随机推荐
- Oracle修改日志归档模式、归档路径以及空间大小的相关测试
ORACLE 创建数据库的时候要不要开启日志归档? oracle数据库可以运行在2种模式下:归档模式(archivelog)和非归档模式(noarchivelog) .归档模式可以提高Oracle数据 ...
- TFS2018环境搭建一硬件要求
本文关于微软的团队协作工具TFS2018搭建 1.操作系统要求 TFS可以安装在Windows Server和Windows PC操作系统中,但是TFS2018和2018只支持64位操作系统中,早期的 ...
- N元马尔科夫链的实现
马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域.经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的 ...
- ASP.NET Core 与 .NET Core 演变与基础概述
https://github.com/dotnet/corehttps://github.com/aspnet/home 今天看到 .NET Core 的改名计划,感觉跨平台的时代快要来了,从之前的 ...
- 对 Phantomjs / CasperJS 进行远程调试
CasperJS运行在PhantomJS之上,其实也是启用PhantomJS的远程调试功能 PhantomJS 是一个无图形界面的浏览器,它支持各种Web标准:DOM处理,CSS选择器,JSON,Ca ...
- JavaScript -- URL编码
----- 010-escape.html ----- <!DOCTYPE html> <html> <head> <meta http-equiv=&quo ...
- 【原创】用JQury来制作星星打分特效功能
前言 常常我们看到一些评论,星星打分,今天我们就用Jq代码来实现,看看究竟是如何实现的 其中有两个重要的事件mouseenter和mouseleave效果如下图 代码 <!DOCTYPE htm ...
- ES6基础教程一 学习笔记
一.变量的声明 1.var 声明全局变量 在ES6中var用来声明全局变量. 2.let 声明局部变量 3.const 声明常量 二.变量的解构赋值 //1.数组赋值 let [a,b,c]=[1,2 ...
- 【IT笔试面试题整理】二叉搜索树转换为双向链表
[试题描述] 将二叉搜索树转换为双向链表 对于二叉搜索树,可以将其转换为双向链表,其中,节点的左子树指针在链表中指向前一个节点,右子树指针在链表中指向后一个节点. 思路一: 采用递归思想,对于二叉搜索 ...
- JS和Java正则表达式验证
js代码 <script type="text/javascript"> function SubmitCk() { var reg = /^([a-zA-Z0-9]+ ...