JQUERY-修改-API-事件绑定
正课:
1. 修改:
2. 按节点间关系查找:
3. 添加,删除,克隆,替换:
4. 事件绑定:
1. 修改:
内容:
html片段: .html(["html片段"]) .innerHTML
text文本: .text(["文本"]) .textContent
表单元素值: .val(["值"]) .value
属性:
HTML标准属性:
$elem.attr("属性名"[,"值"])
代替: setAttribute() getAttribute();
简写: 可用一个attr,修改多个属性值:
$elem.attr({
属性名: "值",
... : ...
})
状态属性:
$elem.prop("状态名"[,true/false])
attr vs prop
本质: attr: 读取HTML中开始标签中的任意属性
prop: 读取内存对象中的属性
自定义扩展属性:
$elem.data("自定义扩展属性名"[,"值"])
//.dataset
样式:
$elem.css("css属性名","属性值")
强调: 单个数值,不用加px单位
修改时: 等效于elem.style.css属性
获取时: 等效于getComputedStyle()
简写: 同时修改多个css属性:
$elem.css({
css属性名:"值",
... : ...
})
问题: 代码繁琐
解决: 用class批量应用/撤销样式
$elem.addClass("class");
$elem.removeClass("class");
$elem.hasClass("class");
$elem.toggleClass("class")
等效: if(hasClass()) removeClass() else addClass()
2. 按节点间关系查找:
2大类关系:
1. 父子:
.parent() .parentNode
.children(["selector"]) .children
.find("selector") 在所有后代中查找符合条件的
.children().first() .firstElementChild
.children(":first")
.children(":first-child")
.children().last() .lastElemenChild
.children(":last")
.children(":last-child")
2. 兄弟:
.prev() .previousElementSibling
.prevAll(["selector"])
.next() .nextElementSibling
.nextAll(["selector"])
.siblings(["selector"])
3. 添加,删除,替换,克隆:
添加: 2步:
1. 用HTML代码片段创建新元素:
var $elem=$("html片段")
2. 将新元素添加到DOM树
$parent.append ($elem) //返回父元素,无法继续对新元素操作
$elem.appendTo("parent") //返回新元素,可继续对新元素操作
$parent.prepend($elem)
$elem.prependTo($parent)
$child.before($elem)
$child.after($elem)
简化: $parent.append/prepend("html")
删除: $elem.remove();
替换: $旧.replaceWith($新) //$旧
$新.replaceAll($旧) //$新
克隆: $elem.clone();
默认: 浅克隆: 只复制属性和样式,不复制行为
深克隆: 即复制属性和样式,又复制行为
$elem.clone(true)
4. 事件绑定:
鄙视: jquery中共有几种事件绑定方式,有什么不同?
DOM: .addEventListener();
.removeEventListener();
1. .bind()/.unbind()
.unbind() 3种重载:
.unbind("事件名",处理函数) 移除指定事件上的一个指定的处理函数
.unbind("事件名") 移除指定事件上绑定的所有处理函数
.unbind() 移除所有事件上的所有处理函数
2. .one() 绑定后,只触发一次处理函数,触发后自动解绑
3. .delegate() 事件委托
其实就是利用冒泡的简化版
$parent.delegate("selector","事件",function(){
var $tar=$(this);
})
.undelegate(...)
4. 废弃: .live/die() 废弃
5. .on()/off()
2个重载:
1. 代替bind, 2个参数: .on("事件名",function(){ ... })
2. 代替delegate, 3个参数:
.on("事件名","选择器",function(){ ... })
6. 更简化: .事件名()
JQUERY-修改-API-事件绑定的更多相关文章
- jQuery中的事件绑定方法
在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...
- 关于jQuery新的事件绑定机制on()的使用技巧
关于jQuery新的事件绑定机制on()的使用技巧 http://www.jb51.net/article/36064.htm 本篇文章介绍了,关于jQuery新的事件绑定机制on()的使用技巧.需要 ...
- Jquery中的事件绑定$("#btn").bind("click",function(){ })
Jquery中的事件绑定:$("#btn").bind("click",function(){ }) 由于每次都这么调用太麻烦,所以jquery就用$(&qu ...
- jQuery 中的事件绑定
一.事件概念 和数据库中的触发器一样,当操作了数据的时候会引发对应的触发器程序执行 一样,JS 中的事件就是对用户特定的行为作出相应的响应的过程,其实上就是浏览器 监听到用户的某些行为的时候会执行对应 ...
- JQuery实现click事件绑定与触发方法分析
原生JS通过什么方法绑定click事件? 原生js有一下三种方法为DOM对象绑定click事件, 第一种,在html中添加 onclick属性,在此属性中添加要绑定的事件函数,如下, 这种方法为htm ...
- jQuery 新添加元素事件绑定无效
jQuery中事件绑定,大多使用on就足够了. 但是对于新添加的元素 on 的绑定事件 会不起作用. 因为 append 中的 节点是在整个文档加载之后才添加的,页面并不会为未来的元素初始化添加点击事 ...
- jQuery插件 -- 动态事件绑定插件jquery.livequery.js
http://blog.csdn.net/zzq58157383/article/details/7721974 动态事件绑定插件livequery, 可以利用它给相应的DOM元素注册事件或者触发回调 ...
- jQuery新的事件绑定机制on()
浏览jQuery的deprecated列表,发现live()和die()在里面了,赶紧看了一下,发现从jQuery1.7开始,jQuery引入了全新的事件绑定机制,on()和off()两个函数统一处理 ...
- jQuery三种事件绑定方式.bind(),.live(),.delegate()
.bind(), .live(), 和 .delegate()之间的区别并不明显.但是理解它们的不同之处有助于写出更简洁的代码,并防止我们的交互程序中出现没有预料到的bug. 基础 DOM树 首先,图 ...
- 用jQuery.delegate()将事件绑定在父元素上面
1.先看看官方的示例: <html> <head> <script type="text/javascript" src="/jquery/ ...
随机推荐
- Mysql时间差计算
Mysql如何计算两个时间字段的差值?可用函数 TIMESTAMPDIFF() ----------------------------- TIMESTAMPDIFF函数,有参数设置,可以精确到天(D ...
- activiti官网实例项目activiti-explorer之扩展流程节点属性2
情景需求:需要查找activiti-explorer项目中获取流程id的方法,然后根据流程id获取相应字段在节点属性中添加内容. 大致流程:拿取整个流程id获取对应表单属性,在页面节点属性中展示对应表 ...
- 多个Gesture响应原理
默认情况下,一个响应链上只能响应一个Gesture,不过每个Gesture都可以设置一个delegate,当某个gesture的代理方法shouldRecognizeSimultaneouslyWit ...
- Django中ORM实际应用
1. Django中ORM的使用 1. 手动新建一个数据库 2. 告诉Django连接哪个数据库 settings.py里面配置数据库连接信息: # 数据库相关的配置项 DATABASES = { ' ...
- (Angular Material)用Autocomplete打造带层级分类的DropDown
效果如下图 代码实现 1.导入模块 import {MatAutocompleteModule} from '@angular/material/autocomplete'; @NgModule({ ...
- 使用themeleaf页面技术时,在JavaScript代码中使用for循环报错.....
解决方法: 在for循环前加上/* <![CDATA[ */,在for循环后加/* ]]> */,这样就能正常解析了:如下 /* <![CDATA[ */ for (var i = ...
- Django 日志输出及打印--logging
Django使用python自带的logging作为日志打印工具. logging是线程安全的,主要分为4部分: Logger 用户使用的直接接口,将日志传递给Handler Handler 控制日志 ...
- PhoenixFD插件流体模拟——UI布局【Dynamics】详解
流体动力学 本文主要讲解Dynamics折叠栏中的内容.原文地址:https://docs.chaosgroup.com/display/PHX3MAX/Liquid+Dynamics 主要内容 Ov ...
- 网站改版应对google
客户要求修改网站,这会给我们带来问题!为了保留他的网站权重和关键字排名,我们必须在做网站修改工作之前分析他原来网站的连接结构和标题,这样我才能更好地保证他原来网站的整体权重不会有大的变化!以下是我们根 ...
- centos7上安装zabbix4.0
zabbix4.0已经推出有一段时间了,针对之前版本做了很多优化配置,易用性得到提高,特别lts(long team support)长技术支持版本,官方说提供5年的稳定技术支持,在商业化运用上,是比 ...