1.1 什么是事件
1、页面对不同访问者的响应叫做事件。
2、实例:在元素上移动鼠标、选取单选按钮、点击元素
1. 单击事件
$("p").click(function(){
// 动作触发后执行的代码!!
});
2.双击事件
$("p").dblclick(function(){
$(this).hide();
})
3、鼠标进入
$("#p1").mouseenter(function(){
alert('您的鼠标移到了 id="p1" 的元素上!');
});
4、鼠标离开
$("#p1").mouseleave(function(){
alert("再见,您的鼠标离开了该段落。");
});
5、获取焦点
$("input").focus(function(){
$(this).css("background-color","#cccccc");
});
6、失去焦点
$("input").blur(function(){
$(this).css("background-color","#ffffff");
});
jQuery 中非常重要的部分,就是操作 DOM 的能力。
jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。
html() - 设置或返回所选元素的内容(包括 HTML 标记)。
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
text() - 设置或返回所选元素的文本内容
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
val() - 设置或返回表单字段的值
$("#btn1").click(function(){
alert("值为: " + $("#test").val());
});
$("#btn3").click(function(){
$("#test3").val("RUNOOB");
});
上面的三个 jQuery 方法:text()、html() 以及 val(),同样拥有回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
$("#btn1").click(function(){
$("#test1").text(function(i,origText){
return "旧文本: " + origText + " 新文本: Hello world! (index: " + i + ")";
});
});
attr() 、prop()方法用于获取和返回属性值。
$("button").click(function(){ alert($("#runoob").attr("href")); });
$("button").click(function(){ $("#runoob").attr("href","http://www.runoob.com/jquery"); });
具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr();.attr不仅可以返回(设置)元素的原生属性,还可以返回(设置)自定义属性。
演示示例:jQuery对HTML的设置与捕获
课堂练习:练习示例
通过 jQuery,很容易处理元素和浏览器窗口的尺寸。
jQuery 尺寸:
width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
$("button").click(function(){
"div 的宽度是: " + $("#div1").width() + "</br>";
"div 的高度是: " + $("#div1").height(20);
});
innerWidth() 方法返回元素的宽度(包括内边距)。
innerHeight() 方法返回元素的高度(包括内边距)。
$("button").click(function(){
"div 宽度,包含内边距: " + $("#div1").innerWidth();
"div 高度,包含内边距: " + $("#div1").innerHeight();
});
outerWidth() 方法返回元素的宽度(包括内边距和边框)。
outerHeight() 方法返回元素的高度(包括内边距和边框)。
$("button").click(function(){
txt+="div 宽度,包含内边距和边框: " + $("#div1").outerWidth()
txt+="div 高度,包含内边距和边框: " + $("#div1").outerHeight();
});
scrollTop() 方法设置或者返回滚动条被卷去的元素的高度
scrollLeft() 方法设置或者返回滚动条被卷去的元素的宽度
$("button").click(function(){ alert($("div").scrollTop()); });
演示示例:jQuery对HTML的页面尺寸操作
课堂练习:练习以上示例
append() 方法在被选元素的结尾插入内容(仍然在该元素的内部)
$("ol").append("<li>追加列表项</li>");
prepend() 方法在被选元素的开头插入内容。
$("ol").prepend("<li>追加列表项</li>");
jQuery after() 方法在被选元素之后插入内容。
jQuery before() 方法在被选元素之前插入内容。
$("img").before("<b>之前</b>");
$("img").after("<i>之后</i>");
remove() - 删除被选元素(及其子元素)
empty() - 从被选元素中删除子元素
empty()仅仅删除元素的文本,占有位置,不显示在页面,但是DOM节点并没有删除
remove()把整个dom节点删除掉,,不占有位置
(1)、插件
jquery不可能包含所有的功能,我们可以通过插件扩展jquery的功能。
jquery有着丰富的插件,使用这些插件能给jquery提供一些额外的功能。
jquery中的animate动画本身不支持变色,但是jquery.color.js弥补了这一缺陷。
.color.js 依赖于 jQuery. 所以需要先引用jqueryjs:
<script src="jquery.min.js"></script>
<script src="jquery.color.js"></script>
$("button").on("click", function () {
$("div").animate({"width":200,"background-color":"red"},2000, function () {
alert("动画结束");
});
});
演示示例:jquery.color插件
课堂练习:使用animate动画改变颜色
(1)、引入js文件
很多网站都会用到‘图片懒加载’这种方式对网站进行优化,即延迟加载图片或符合某些条件才开始加载图片。
懒加载原理:浏览器会自动对页面中的img标签的src属性发送请求并下载图片。通过动态改变img的src属性实现。它可以延迟加载长页面中的图片在浏览器可视区域外,图片不会被载入,直到用户将页面滚动到它们所在的位置。
与图片预加载的处理方式相反,在包含很多大图片长页面中延迟加载图片可以加快页面加载速度,尤其是移动端。浏览器将会在加载可见图片之后即进入就绪状态,在淘宝商品详情页、漫画网站很多图片的情况下还可以帮助降低服务器负担。
<script src="jquery.min.js"></script>
<script src="jquery.lazyload.js"></script>
(2)、示例
<img alt="" width="640" height="480" data-original="img/test.jpg" />
$(function() {
$("img").lazyload();
});
演示示例:jquery.lazyload插件
课堂练习:图片点击后,开始加载
jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互、特效、小部件及主题。无论您是创建高度交互的 Web 应用程序还是仅仅向窗体控件添加一个日期选择器,jQuery UI 都是一个完美的选择。
jQuery UI 包含了许多维持状态的小部件(Widget),因此,它与典型的 jQuery 插件使用模式略有不同。所有的 jQuery UI 小部件(Widget)使用相同的模式,所以,只要您学会使用其中一个,您就知道如何使用其他的小部件(Widget)。
下载zip包并解压,通常情况下,您需要在页面中引用这三个文件,以便使用 jQuery UI 的窗体小部件和交互部件:
<link rel="stylesheet" href="jquery-ui-1.12.1/jquery-ui.css" />
<script src="js/jquery-1.11.1.min.js"></script>
<script src="jquery-ui-1.12.1/jquery-ui.min.js"></script>
一旦您引用了这些必要的文件,您就能向您的页面添加一些 jQuery 小部件。比如,要制作一个日期选择器(datepicker)小部件,您需要向页面添加一个文本输入框,然后再调用 .datepicker(),如下所示:
<input type="text" name="date" id="date" />
$( "#date" ).datepicker();
允许鼠标拖动元素,在任意的 DOM 元素上启用 draggable 功能。通过鼠标点击并在视区中拖动来移动 draggable 对象。
$(function() {
$( "#draggable" ).draggable();
});