关于jquery 集合对象的 each和click方法的 思考 -$(this)的认识
1, 很重要的是:
each: 是 **自动遍历 **集合中所有 item的, 是自动的;
click: 包括其他所有的 "事件", 如mouseX事件, keyX事件等, 都不是 自动 执行的.
jquery chm说得 很清楚, 对于一个集合, 如 $("li"), 当给它绑定 click事件时, 所有匹配元素 在 click事件发生 时 , 执行fn, 也就是,
$("li").click(function(){...} = fn ); 是不会自动 执行的, $("li")集合中, 的每一个匹配 的 li, 都会在 click时 绑定 fn. 也就是说, $(li)集合中的每一个元素, 只有在 click时, 才会去执行 fn
$(this): 是指 执行fn的 当前元素/ 当前上下文的 元素 . 对于 each, 表示正在遍历的那个元素, 而对于 click等事件, this表示 当前正在 发生 事件的那个元素. 是 $("li")(例子), 这个集合中, 当前正在被 click的 那个匹配 的元素, 不是 所有的 对象集合. 更不是, 对象集合中的 每个元素. 哪一个元素被click, $(this)就是那个正在 被 click的元素. 也就是: this = function(e){ e.target === this} 这个this, 就是 当前正在 发生的 事件的target. 所以, 要 实现 多个li中, 当前被单击的那个li 改变背景色, 其他 并列的li不改变颜色:
$("li").click(function(){
$(this).css("background-color", "#ddd"); // 在里的this, 就是你当前正在单击的那个li,
$(this).siblings().css("background-color", "#fff");
});
1. 用不着: 还去判断 this是哪个: if($(this) === $(:focus)) {....}....
2. 用不着 在最后 再加上 return false; (只有each 才需要加上 return false=break; return true =continu; 是return true, 不只是 return!


2, 关于on和bind的区别?
动态元素和 静态元素, 在html中, 原来就有的, 原来的html文档中, 就写了的,称为静态元素; 而通过 js产生的 , 在网页运行时, 开始时没有, 而是通过js在运行时产生的, 加入到dom中的, 称为动态元素.
如果直接用click, mouseX 等事件方法函数 , 不会 对 "动态元素" 有效, 动态增加的元素li不会被 绑定 click事件...
如果用bind 绑定的事件, 对于 由 js产生的, 动态的, 后来再加入进来的(输入法准确率应该达到99%, 100次输入允许由一次错误...就需要看准了再选! ), 元素, 不会被绑定click事件, 只有原先 html中就有的 静态的 html元素, 才能绑定有效.
用on绑定的事件, 对于动态的元素也有效果 , 后来增加的li元素, 也会被绑定 click等事件.
- 在使用on来绑定事件处理, 而且要对 动态 增加的 元素也 有效, 要注意: 在 on函数的原型中:
on(events, [selector- "child"], [data], fn), 要使用data, 就得用 函数名在on中, 而单独的 将data 传递给fn的 event.data.... - 一定要使用on函数中 的 selector, 这是一个 过滤器, 而且 是 "子元素"的 过滤器. on函数的前面 选择器一定要用 "父元素". 只有这样, 才能实现在动态增加的子元素上 也能狗绑定click事件, 原因是, 对于动态增加的元素, 它会试着去找 它的父元素, 然后再看 过滤子selector...
- 在使用on来绑定事件处理, 而且要对 动态 增加的 元素也 有效, 要注意: 在 on函数的原型中:
单纯的 直接用li元素集合, 是不行的, 因为动态增加的元素, 总是先去找 父元素的 容器...


要用父元素来选择, on后面用 子元素 来 过滤, 才能在动态元素上, 绑定先前的事件


凡是以 冒号: 开头的选择器, 筛选器, 都叫 "伪选择器", 如同超链接 的 伪类 a:active, a:hover等一样, "伪选择器"的前面最好 要加上 选择符, 加上其他 选择器, 因为默认的 伪选择器, 是全部选择器, 即: :pseudo-selector = = = *:pseudo..
关于jquery 集合对象的 each和click方法的 思考 -$(this)的认识的更多相关文章
- jQuery事件对象event的属性和方法
事件处理(事件对象.目标元素的获取,事件对象的属性.方法等)在不同浏览器之间存在差异,jQuery在遵循W3C规范的情况下做了封装统一 一.事件对象常用的属性: event.type:获取事件的类型, ...
- jquery遍历对象,数组,集合
1.jquery 遍历对象 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTM ...
- jQuery遍历对象、数组、集合实例
1.jquery 遍历对象 复制代码代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" ...
- 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 3.操作jQuery集合《jquery实战》
3.1 创建HTML元素 使用 jquery 创建动态元素是相当容易的.可以通过 $() 函数包含一个 HTML 标签的字符串来创建. $('<div>Hello</div>' ...
- 使用jQuery异步传递含复杂属性及集合属性的Model到控制器方法
Student类有集合属性Courses,如何把Student连同集合属性Courses传递给控制器方法? public class Student { public ...
- Spring MVC同时接收一个对象与List集合对象
原:https://blog.csdn.net/u011781521/article/details/77586688/ Spring MVC同时接收一个对象与List集合对象 2017年08月25日 ...
- jQuery 实战读书笔记之第三章:操作 jQuery 集合
创建新 HTML 元素 $('<div>Hello</div>'); /* 创建等价的空 div 元素 */ $('<div>'); $('<div /> ...
- 深入学习jQuery事件对象
× 目录 [1]获取 [2]事件类型 [3]事件目标[4]当前元素[5]事件冒泡[6]默认行为[7]命名空间[8]返回值[9]键值 前面的话 在触发DOM上的某个事件时,会产生一个事件对象event, ...
随机推荐
- ubuntu su sudo sudo–i 区别
sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码.不过有时间限制,Ubuntu默认为一次时长15分钟. su : 切换到某某用户模式, ...
- WIN32下使用DirectSound接口的简单音频播放器(支持wav和mp3)
刚好最近接触了一些DirectSound,就写了一个小程序练练手,可以用来添加播放基本的wav和mp3音频文件的播放器.界面只是简单的GDI,dxsdk只使用了DirectSound8相关的接口. D ...
- 蓝牙BLE传输性能及延迟分析
BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数.每一帧数据的长度.具体参见如下链接: https://devz ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- NOIP2013火柴排队[逆序对]
题目描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为: ∑(ai-bi)^2 其中 ai 表示 ...
- java读取excel文件
package com.execl; import java.io.File; import java.io.FileInputStream; import java.io.IOException; ...
- 第3章 窗口与消息_3.1Windows编程模型
第3章窗口与消息 3.1 Windows_编程模型 (1)窗口程序的运行过程 ①设计窗口 ②注册窗口类(RegisterClassEx).在注册之前,要先填写RegisterClassEx的参 ...
- Python 字符串
Python访问字符串中的值 Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. Python访问子字符串,可以使用方括号来截取字符串,如下实例: #!/usr/bin/py ...
- 搭建一套自己实用的.net架构(1)【概述】
入园很久,一直默默的潜水,近来得空想写点什么. 思前想后,那就把自己平时没事干自己摘抄.引用.瞎写的一些东西写出来.帮助自己巩固一下,顺便请高手们指点一二. 我本人很懒 ,一些代码就是直接复制别人的劳 ...
- JSX语法简介
React的核心机制之一就是可以在内存中创建虚拟的DOM元素.React利用虚拟DOM来减少对实际DOM的操作从而提升性能. JSX简介 JSX就是Javascript和XML结合的一种格式.Reac ...