1.1 jQuery操作DOM

jQuery课程的目标:学会使用jQuery设计常见效果

选择器

基本选择器:#id 、.class 、element、* 、

层级选择器: 空格、>、+、~

基本过滤选择器::first、:last、:eq(index)、:lt(index)、:gt(index)、:odd、:even

筛选选择器:.eq(index)、.children()、.parent()、.siblings()、.find()

动画:show、hide、fadeIn、fadeOut、fadeTo、slideDown、slideUp、slideToggle

animate

DOM操作:.css()、addClass(“className”)、removeClass()、toggleClass

.attr()、removeAttr()、.val()、.html(“<p></p>”)、text()

node.append(“<p>我是追加的内容</p>”)、prePend()

1.2 元素操作

1.2.1 高度和宽度

$(“div”).height(); // 高度

$(“div”).width(); // 宽度

.height()方法和.css(“height”)的区别:

  1. 返回值不同,.height()方法返回的是 数字类型(20),.css(“height”)返回的是字符串类型(20px),因此.height()方法常用在参与数学计算的时候

1.2.2 坐标值

$(“div”).offset(); // 获取或设置坐标值 设置值后变成相对定位

$(“div”).position(); // 获取坐标值 子绝父相 只能读取不能设置

1.2.3 滚动条(滚动事件)

$(“div”).scrollTop(); // 相对于滚动条顶部的偏移

$(“div”).scrolllLeft(); // 相对于滚动条左部的偏移

案例:两次跟随的广告

案例:防腾讯固定导航栏

1.3 jQuery事件

1.3.1 绑定

click/mouseenter/blur/keyup

// 绑定事件

bind:$node.bind(“click”,function(){});

// 触发一次

one : $node.one(“click”,function(){});

delegate : $node.delegate(“p”,”click”,function(){});

on: $node.on(“click”,”p”,function(){});

1.3.2 解绑

unbind、undelegate

off

1.3.3 触发

click : $(“div”).click();

trigger:触发事件,并且触发浏览器默认行为

triggerHandler:不触发浏览器默认行为

1.4 jQuery事件对象介绍

event.stopPropagation() //阻止事件冒泡

event.preventDefault();  //阻止默认行为

1.5 jQuery补充

需要注意的地方:

animate动画:不支持背景的动画效果

animate动画支持的属性列表

参考手册(不全)、

在线文档:

w3school:http://www.w3school.com.cn/jquery/index.asp

jQuery官网:http://jquery.com/

$()的几种常用用法:

1.$(“#id”) 选择某个元素,返回值为jQuery对象

2.$(this) 将DOM对象转换成jQuery对象

3.$(“<div></div>”) 创建元素,返回值为jQuery对象

4.$(function(){}); 入口函数的简写方式

$("div").html() 获取内容的时候,只返回匹配到的第一个元素的数据

链式编程问题:

$("div").html() 后面就不能继续链式了?

为什么?函数返回值问题!

$node.each(function(index,element){});

$.each([1,2,3,5,6,7], function (i,v) {

console.log(i + " : " + v);

});

map返回数组(了解)

$(“li”).map(function(){

return $(this).text();

});

1.5.1 数据缓存

$(“div”).data(“index”); // 获取数据index的值

注意:

html里面的data 属性,例如:data-ROLE,jQuery获取的时候用:$(“div”).data(“role”);

当使用jQuery设置data属性的时候,例如:$(“div”).data(“UPCASE”,123); ,那么获取的时候,要使用:$(“div”).data(“UPCASE”);

<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'>注意HTML属性不区分大小写</div>

$( "div" ).data( "lastValue" ) === 43;

lastValue -> data-last-value

1.5.2 .data()跟.attr() 方法的区别:

1.获取数据的时候,attr方法需要传入参数,data方法可以不传入参数,这时候获取到的是一个js对象,即使没有任何data属性。

2. 获取到的数据类型不同,attr方法获取到的数据类型是字符串(String),data方法获取到的是相应的类型。

3. data方法获取到数据之后,我们使用一个对象来接收它,那么就可以直接操作(设置值或获取值)这个对象,而attr方法不可以。

并且通过这种方式,要比.data(key,value)的方式更高效!

4. data-attribute属性会在页面初始化的时候放到jQuery对象,被缓存起来,而attr方法不会。

1.5.3 多库共存

同一个页面,引入包含$变量的其他js库,保证它们不发生命名冲突。

// other_lib.js 包含$

<script src="other_lib.js"></script>

<script src="jquery-1.11.1.js"></script>

<script>

$.noConflict();

// 可以使用其他库的$符号了

// 使用jQuery

jQuery(document).ready(function(){});

</script>

1.5.4 jQuery优势:

  1. 书写简洁、代码优雅
  2. Write Less,Do More
  3. 强大的选择器,支持CSS1-3所有的选择器
  4. 浏览器兼容性好,兼容IE6、7、8
  5. 统一的入口,降低了学习、记忆成本
  6. 强大的动画效果、事件支持
  7. 开源、免费
  8. 插件丰富,可扩展性强

1.6 jQuery插件机制

jQuery.color.js

jQuery官网插接教程:http://learn.jquery.com/plugins/basic-plugin-creation/

联系我们的手机

两种方式:

$.log = function(){};

$.fn.log = function(){};

自定义选择器:

jQuery.extend(jQuery.expr[':'], {
     "class-itcast": function(ele) {
        return jQuery(ele).hasClass("itcast");
     }

});
$(":class-itcast").css("background","pink");

1.6.1 常用插件介绍

jQuery.lazyload.js

1.6.2 插件使用:

查看API文档,了解插件的功能,提供的方法和参数。

插件依赖版本

  1. 引用jQuery
  2. 引用插件
  3. 使用插件

1.6.3 怎么写插件

演示jQuery.lxCfbg.js (自己的插件)

(function ($) {

$.fn.lxCfbg = function (options) {

// 合并参数

var opts = $.extend({

"color": "#000",

"font-size": "16px",

"background-color": "#fff"

}, options);

$this.css({

"color": opts.color,

"font-size": opts["font-size"],

"background-color": opts["background-color"]

});

return $this;

};

})(jQuery);

1.7 jQueryUI

jQueryUI教程

jQuery第二篇 (帅哥)的更多相关文章

  1. Jquery第二篇【选择器、DOM相关API、事件API】

    前言 前面已经介绍过了Jquery这门语言,其实就是一个javaScript的库-能够简化我们书写的代码-.本博文主要讲解使用Jquery定位HTML控件[定位控件就是获取HTML的标签],使用Jqu ...

  2. jquery第二篇

    1  操作元素(属性,css,文档处理) --------------------------属性 $("").attr(); $("").removeAttr ...

  3. jquery jtemplates.js模板渲染引擎的详细用法第二篇

    jquery jtemplates.js模板渲染引擎的详细用法第二篇 关于jtemplates.js的用法在第一篇中已经讲过了,这里就直接上代码,不同之处是绑定模板的方式,这里讲模板的数据专门写一个t ...

  4. 第二篇.Bootstrap起步

    第二篇Bootstrap起步 我们可以在http://getbootstrap.com下载bootstrap的文件 点击左边的download bootstrap可以下载bootstrap的css,j ...

  5. “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)

    “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构.登录窗口.以及主界面) 一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增 ...

  6. 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. jQuery事件篇---基础事件

    写在前面: 有一段时间未更新博客了,利用这段时间,重新看了<jQuery基础教程 第四版>和<锋利的jQuery 第二版>,这两本书绝对是jQuery入门非常好的书,值得多读几 ...

  8. 【腾讯敏捷转型No.2】帅哥,来多少敏捷?

    上回腾讯敏捷转型系列第一篇文章<敏捷到底是什么鬼?>讲到公司铁了心要推进敏捷,这是战略层面的决定,为什么呢? 当时的我们并不知道公司为什么一定要推行敏捷的新概念,但是后来公司的变化帮助我们 ...

  9. Egret入门学习日记 --- 第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容)

    第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容) 既然选好了Egret,那我就要想想怎么学了. 开始第一步,先加个Q群先,这不,拿到了一本<E ...

随机推荐

  1. 在Sublime TEXT3中添加brogrammer-theme主题配色方案

    喜欢用sublime text3的都知道原配的主题要么就是背景颜色太亮太累眼,要么就是配色太少不便于一眼看出哪有问题.所以在此推荐一个brogrammer-theme的主题,配色非常的全而且添加了扁平 ...

  2. 使用mongodump将mongodb数据备份带JOSN文件

    备份: 首先,mongodb要连接到指定数据库 在指定数据库目录下,shift+右键--在此次打开命令行--输入以下命令: mongodump -d databaseName -o backup 备份 ...

  3. Building a RESTful Web Service

    Reference: https://spring.io/guides/gs/rest-service/ 参照上述链接进行操作,使用gradle build. 因为total new to this. ...

  4. bzoj1503郁闷的出(cheng)纳(xu)员

    好痛苦,,,WA了不知道多少遍 错的服了,,, 如果某员工的初始工资低于工资下界,他将立刻离开公司 我也不知道是我语文有问题还是题目有毒,反正这个东西好像不应该算在离开公司的总人数的答案里... 让我 ...

  5. View 与 Controller 之间的delegate(代理)传值

    这个代理传值是经常使用的一种传值方式,下面介绍一种View 和 Controller 之间的代理传值方法. 先建立一个View视图 如 LoginView 是继承于一个UIView 在LoginVie ...

  6. React-native之Alert

    普通的alert 先看函数原型 alert: (title: string, message?: string, buttons?: AlertButton[], type?: string) =&g ...

  7. 有关iOS系统中调用相机设备实现二维码扫描功能的注意点(3/3)

    今天我们接着聊聊iOS系统实现二维码扫描的其他注意点. 大家还记得前面我们用到的输出数据的类对象吗?AVCaptureMetadataOutput,就是它!如果我们需要实现目前主流APP扫描二维码的功 ...

  8. Project 'king.commons' is missing required library: 'lib/plweb.jar' Build path Build Path Problem

    问题描述:之前在项目里引用一个jar 包,后来不用了删掉 ,但是没有删干净,然后报以下错误. 解决方案: 1.删除libraries 2.找到该项目下的 .classpath 文件,用记事本打开 ,删 ...

  9. Mac 终端 Linux 命令总结(简单命令)

    目录操作 命令名 功能描述 使用举例 mkdir 创建一个目录 mkdir dirname rmdir 删除一个目录 rmdir dirname mvdir 移动或重命名一个目录 mvdir dir1 ...

  10. 异步调用window.open时被浏览器阻止新窗口解决方案

    var wyWindow = window.open('_blank');$http.post($rootScope.baseUrl + '/Interface0231A.ashx', { userF ...