1. 排队和并发

1.并发: 多个css属性同时变化
放在一个animate函数内的多个css属性默认并发变化

2.排队: 多个css属性先后变化
对同一个元素,先后调用多个动画API,都是排队执行
原理: 所有动画API起始并不是立刻开始动画,而仅是将当前动画函数加入元素的动画队列中等待执行。

停止动画: $(...).stop();
默认: 仅停止动画队列中,当前正在播放的一个动画,队列中后续动画,依然执行
如何停止动画,并清空队列: .stop(true)

选择器: :animated 可选择或判断一个正在播放动画的元素

2. 类数组对象操作

遍历
$(...).each(function(i,elem){
//this->当前elem
})
鄙视: $(...).each() vs $.each(数组/集合,fun)

查找
var i=$(...).index(要找的DOM元素/jq对象)
简化: 如果在一个父元素内查找子元素:

$(子元素).index();

3. 为jquery添加自定义方法

1.添加在jQuery.fn中
强调: jQuery.fn.自定义方法=function(){

    //this->将来调用该方法的jq对象
  }

2.调用时: $(...).自定义方法()

4. 插件: 为标准函数库或框架添加功能的第三方库

官方插件jQuery UI
使用jQueryUi:
先引入jquery.js,因为jQuery UI是基于jQuery开发的
再引入jquery-ui.js
再编写自定义脚本
包括: 
交互: 自学
效果:

a. 重写了三类简单动画API,添加了新的动效

b. 为addClass/removeClass/toggleClass,也添加了动效

c. 重写了animate方法,支持颜色动画

部件
什么是部件: 具有完整样式和行为的小功能
如何使用:

1. 引入: jquery-ui.css
2. 按照部件约定,编写html内容结构
3. 引入jquery.js和jquery-ui.js
4. 在自定义脚本中,找到插件的父元素,调用插件API

原理:

侵入性: 在开发者不知情的情况下,自动添加class和行为
优点: 简单
缺点: 不可维护

jQuery UI   vs   bootstrap

jQuery UI 傻瓜式,侵入式
优点: 简单

缺点: 不可维护

bootstrap 少量手动添加样式和行为(自定义扩展属性)
缺点: 相比jQuery UI,稍微麻烦
优点: 可定制

5. 第三方插件

文件上传
富文本编辑器
masonry: 彩砖墙/瀑布流

6. 自定义插件

何时: 只要希望复用一块功能和样式时,都要封装为插件
前提: 必须已经用原生的html,css,jss实现了插件的功能

2种封装插件的风格: 
jQuery侵入式——

1. 将插件所需的css提取出来,保存在单独的css文件中

2. 定义插件的js文件: 
    先检查是否提前引入了jQuery
    定义插件函数,保存在jQuery的原型对象jQuery.fn中

侵入: 根据插件需要,为子元素自动添加class
     为子元素绑定事件处理函数

3. 使用插件: 
    引入插件的css文件
    在body中按插件的规定,编写html内容
    引入jquery.js和插件的js文件
    在自定义脚本中,查找要应用插件的父元素,调用插件函数

Bootstrap DIY式——

1. 将css拷贝到独立的css文件中

2. 编写js:
    先验证是否提前加载了jQuery
    查找自定义扩展属性,为其绑定事件

3. 使用插件:
    引入插件的css
    按照插件的HTML格式要求,编写内容
    为插件的HTML元素手动添加class
    为触发事件的元素添加指定的自定义扩展属性

7. jQuery的ajax API

$.ajax({
type:"get/post",
url:"xxx",
data:"rawData"/{ 变量名:值, ...}
dataType:"json",
beforeSend(){

//在发送之前触发

}
completed(){

//只要请求完成,无论成功还是失败,都触发

}
success(data){

//请求成功触发

}
error(){

//发生错误时触发

}
}).then(data=>{
... ...
}).catch(err=>{ ... })

简写

专门发送get请求

$.get(url,data,dataType).then(data=>{ ... })

专门发送get请求,接收JSON响应,并自动转为js对象

$.getJSON(url,data).then(data=>{ ... })

专门发送get请求,接收js语句响应,并执行

$.getScript(url,data)

专门发送get请求,获取一段html代码片段的响应,并自动填充到前面的父元素中

$(父元素).load("xx.php/xx.html")
强调: 不支持then!

专门简化post请求的: 
$.post(url,data,dataType).then(data=>{ ... })

8. 跨域请求

跨域: 
从http://store.company.com/dir/...

允许跨域请求: link, img, script
不允许跨域: xhr对象 (ajax请求)
变通: script 需要服务器返回一段可执行的js语句

服务器应该返回包含数据的一条可执行的js语句

如何实现?
客户端实现: JSONP (填充式json)

1. 在客户端定义处理函数

2. 在按钮单击事件中,动态创建script元素,src设置为服务端地址,并携带请求参数callback=函数名

3. 在服务器端,接收请求参数中的函数名,将函数名和要返回的数据,拼接为一条可执行的js语句

4. 客户端script,请求服务端php,获得可执行语句,自动调用提前定义好的函数处理数据

5. 在客户端处理函数结尾,要动态删除script

起始jQuery的ajax api都可用, 只不过,dataType必须都写成jsonp,原理同上。

服务端: header("Access-Control-Allow-Origin:*");
允许客户端使用xhr对象跨域请求!

前端知识点总结——jQuery(下)的更多相关文章

  1. 前端学习之jquery/下

    前端学习之jquery 一 属性操作 html(): console.log($("div").html()); $(".test").html("& ...

  2. 前端知识点总结——jQuery(上)

    1.什么是jQuery jQuery: 第三方的极简化的DOM操作的函数库第三方: 下载极简化: 是DOM操作的终极简化: 1. DOM: 增删改查2. 事件绑定:3. 动画效果:4. Ajax DO ...

  3. FancySelect – 更好用的 jQuery 下拉选择框插件

    FancySelect 这款插件是 Web 开发中下拉框功能的一个更好的选择.FancySelect 使用方便,只要绑定页面上的任何 Select 元素,并调用就 .fancySelect() 就可以 ...

  4. js前端分页之jQuery

    锋利的js前端分页之jQuery 大家在作分页时,多数是在后台返回一个导航条的html字符串,其实在前端用js也很好实现. 调用pager方法,输入参数,会返回一个导航条的html字符串.方法的内部比 ...

  5. 前端学习之jquery

    前端学习之jquery 1.   什么是jQuery对象? jQuery对象就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的.如果一个对象是jQuery对象,那么它 ...

  6. Vue.js中前端知识点总结笔记

    1.框架和库的区别: 框架:framework 有着自己的语法特点.都有对应的各个模块库 library 专注于一点 框架的好处: 1.提到代码的质量,开发速度 2.提高代码的复用率 3.降低模块之间 ...

  7. Web前端-Ajax基础技术(下)

    Web前端-Ajax基础技术(下) 你要明白ajax是什么,怎么使用? ajax,web程序是将信息放入公共的服务器,让所有网络用户可以通过浏览器进行访问. 浏览器发送请求,获取服务器的数据: 地址栏 ...

  8. 前端知识点总结(HTML)

    前端知识点总结(HTML) 一,头部常用的标签 1,link标签  (1),设置ico图标 <link rel="shortcut icon" href="favi ...

  9. 前端基础之:JQuery(可编辑版)

     前端基础之jquery   一 jQuery是什么? [1]   jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. [2]   ...

随机推荐

  1. Net基础篇_学习笔记_第十天_方法_方法的调用问题

    在Main()函数中,调用Test()函数,我们管Main()函数称之为调用者,管Test()函数称之为被调用者.如果被调用者想要得到调用者的值:1).传递参数.2).使用静态字段来模拟全局变量.如果 ...

  2. 松软科技课堂:SQLUNION和UNIONALL操作符

    SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每 ...

  3. Spring Boot 的单元测试和集成测试

    学习如何使用本教程中提供的工具,并在 Spring Boot 环境中编写单元测试和集成测试. 1. 概览 本文中,我们将了解如何编写单元测试并将其集成在 Spring Boot 环境中.你可在网上找到 ...

  4. 使用mkfs.ext4格式化大容量磁盘

    使用mkfs.ext4默认参数格式化磁盘后,发现格式化时间特别长,并且格式化会占用磁盘很大的空间.例如2TB的磁盘格式化会占用10分钟左右时间,并占用30G左右的磁盘空间.究其原因,原来inode会占 ...

  5. Windows认证 | 域认证

    在Windows中的身份认证方式有很多,也在不断的升级,但是在域中,依旧使用的是Kerberos认证. Kerberos 是一种网络认证协议,它的实现不依赖于主机操作系统的认证,无需基于主机地址的信任 ...

  6. springboot全局异常拦截源码解读

    在springboot中我们可以通过注解@ControllerAdvice来声明一个异常拦截类,通过@ExceptionHandler获取拦截类抛出来的具体异常类,我们可以通过阅读源码并debug去解 ...

  7. 波士顿房价预测 - 最简单入门机器学习 - Jupyter

    机器学习入门项目分享 - 波士顿房价预测 该分享源于Udacity机器学习进阶中的一个mini作业项目,用于入门非常合适,刨除了繁琐的部分,保留了最关键.基本的步骤,能够对机器学习基本流程有一个最清晰 ...

  8. 朱晔和你聊Spring系列S1E11:小测Spring Cloud Kubernetes @ 阿里云K8S

    有关Spring Cloud Kubernates(以下简称SCK)详见https://github.com/spring-cloud/spring-cloud-kubernetes,在本文中我们主要 ...

  9. js 跳转链接的几种方式

    1.跳转链接 在当前窗口打开 window.location.href="http://www.baidu.com" 等价于 <a href="baidu.com& ...

  10. 基于hap的文件上传和下载

    序言 现在,绝大部分的应用程序在很多的情况下都需要使用到文件上传与下载的功能,在本文中结合hap利用spirng mvc实现文件的上传和下载,包括上传下载图片.上传下载文档.前端所使用的技术不限,本文 ...