jQuery第二篇 (帅哥)
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”)的区别:
- 返回值不同,.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动画:不支持背景的动画效果
参考手册(不全)、
在线文档:
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优势:
- 书写简洁、代码优雅
- Write Less,Do More
- 强大的选择器,支持CSS1-3所有的选择器
- 浏览器兼容性好,兼容IE6、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文档,了解插件的功能,提供的方法和参数。
插件依赖版本
- 引用jQuery
- 引用插件
- 使用插件
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
jQuery第二篇 (帅哥)的更多相关文章
- Jquery第二篇【选择器、DOM相关API、事件API】
前言 前面已经介绍过了Jquery这门语言,其实就是一个javaScript的库-能够简化我们书写的代码-.本博文主要讲解使用Jquery定位HTML控件[定位控件就是获取HTML的标签],使用Jqu ...
- jquery第二篇
1 操作元素(属性,css,文档处理) --------------------------属性 $("").attr(); $("").removeAttr ...
- jquery jtemplates.js模板渲染引擎的详细用法第二篇
jquery jtemplates.js模板渲染引擎的详细用法第二篇 关于jtemplates.js的用法在第一篇中已经讲过了,这里就直接上代码,不同之处是绑定模板的方式,这里讲模板的数据专门写一个t ...
- 第二篇.Bootstrap起步
第二篇Bootstrap起步 我们可以在http://getbootstrap.com下载bootstrap的文件 点击左边的download bootstrap可以下载bootstrap的css,j ...
- “MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构、登录窗口、以及主界面)
“MVC+Nhibernate+Jquery-EasyUI”信息发布系统 第二篇(数据库结构.登录窗口.以及主界面) 一.在上一篇文章中,主要说的就是把主框架搭建起来,并且Nhibernate能达到增 ...
- 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- jQuery事件篇---基础事件
写在前面: 有一段时间未更新博客了,利用这段时间,重新看了<jQuery基础教程 第四版>和<锋利的jQuery 第二版>,这两本书绝对是jQuery入门非常好的书,值得多读几 ...
- 【腾讯敏捷转型No.2】帅哥,来多少敏捷?
上回腾讯敏捷转型系列第一篇文章<敏捷到底是什么鬼?>讲到公司铁了心要推进敏捷,这是战略层面的决定,为什么呢? 当时的我们并不知道公司为什么一定要推行敏捷的新概念,但是后来公司的变化帮助我们 ...
- Egret入门学习日记 --- 第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容)
第二篇 (书籍的选择 && 书籍目录 && 书中 3.3 节 内容) 既然选好了Egret,那我就要想想怎么学了. 开始第一步,先加个Q群先,这不,拿到了一本<E ...
随机推荐
- The innocence is brilliant.
[11.20~12.20] 2016年的最后一个月在听Avril的歌,感觉她发音状态好好(对此建议去听<Wish You Were Here>!!!) 到此12月份的活都干完了吧~还剩最后 ...
- Swift #function 和 _cmd (Objective-C)
NSStringFromSelector(_cmd); // Objective-C print(__FUNCTION__) // Swift 2 print(#function) // Swift ...
- Arduino下LCD1602综合探究(下)——如何减少1602的连线,LiquidCrystal库,LiquidCrystal库中bug的解决方法
一.前言: 上文中,笔者系统的阐述了1602的两种驱动方式,并简单的提到了Arduino的LiquidCrystal库.本文紧接上文,对以下两个问题进行更加深入的探讨:如何能够使1602对Arduin ...
- php与数据库代码开发规范
php与数据库代码开发规范 1/25/2016 6:00:31 PM php对各类变量命名规范 目录名 文件命名 局部变量命名 使用英文动词名词,用下划线作为单词的分割,所有字母均使用小写 目录 up ...
- WPF 实现圆形进度条
项目中用到圆形进度条,首先就想到使用 ProgressBar 扩展一个,在园子里找到迷途的小榔头给出的思路和部分代码,自己加以实现. 进度小于60显示红色,大于60则显示绿色.效果如下: 基本思路: ...
- Android开发 SQLite数据库应用笔记(一)
注意: 1.public Cursor rawQuery(String sql, String[] selectionArgs) Cursor游标是查询后返回的结果集合,游标的意思是指向集合中的某行. ...
- App Framework $.ui.loadContent 参数解释
在使用 app Framework 的 $.ui.loadContent(target,newTab,goBack,transition);时 对 newTab goback两个参数一直不得其解.通过 ...
- SSH私钥取消密码(passphrase )
1. 使用openssl命令去掉私钥的密码 openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa_new 2. 备份旧私钥 mv ~/.ssh/id_rsa ...
- log4net写入mysql完整例子
1,创建表log CREATE TABLE `log` ( `id` int(11) NOT NULL AUTO_INCREMENT , `log_datetime` timestamp NO ...
- STM32之通用定时器
广大的互联网的大家早上中午晚上..又好..没错了..我又来了..写博客不是定时的..为什么我要提写博客不是定时的呢??聪明的人又猜到我要说什么了吧.有前途.其实我还是第一次听到定时器有通用和高级之分的 ...