jQuery学习(三)

事件

on方法可以将一个事件绑定在jQuery对象上,当你的操作触发了这些事件时,便会调用你所绑定的函数。

例如,给某个超链接绑定点击事件。

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <script src="./js/jquery-1.12.0.js"></script>
 4 <script>
 5 $(document).ready(function(){
 6     var a = $(‘a‘);
 7     a.on(‘click‘, function(){
 8         alert(‘Hello Word‘);
 9     });
10 });
11 </script>
12 <title>Event</title>
13 </head>
14 <body>
15 <a href="#0">Click</a>
16 </body>

除了用on()以外,还可以直接用click来绑定点击事件。

<script>
$(document).ready(function(){
    var a = $(‘a‘);
    a.click(function(){
        alert(‘Hello‘);
    });
});
</script>

鼠标事件

click: 鼠标单击时触发;

dblclick:鼠标双击时触发;

mouseenter:鼠标进入时触发;

mouseleave:鼠标移出时触发;

mousemove:鼠标在DOM内部移动时触发;

hover:鼠标进入和退出时触发两个函数,相当于mouseenter加上mouseleave。

键盘事件

键盘事件仅作用在当前焦点的DOM上,通常是<input><textarea>

keydown:键盘按下时触发; keyup:键盘松开时触发; keypress:按一次键后触发。

其他事件

focus:当DOM获得焦点时触发;

blur:当DOM失去焦点时触发;

change:当<input><select><textarea>的内容改变时触发;

submit:当<form>提交时触发;

ready:当页面被载入并且DOM树完成初始化后触发。

其中,ready仅作用于document对象上,在页面DOM树构建完成后触发。

正如上述代码所示,除了能够用on绑定ready事件外,ready事件也可以像click一样被简写。甚至能被更简单的写为:

1 <script>
2 $(function(){
3     var a = $(‘a‘);
4     a.click(function(){
5         alert(‘Hello‘);
6     });
7 });
8 </script>

而且这种写法更为常见。

如果想获得事件的其他内容,可以在function传入变量e来获取。

取消绑定:

和on()相反的是,off()可以帮我们取消jQuery对象上的事件绑定,

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <script src="./js/jquery-1.12.0.js"></script>
 4 <script>
 5 $(function(){
 6     var a = $(‘a‘);
 7     a.click(function(){
 8         alert(‘Hello‘);
 9     });
10     var bt = $(‘button‘);
11     bt.click(function(){
12         a.off(‘click‘);
13         alert(‘event_off‘);
14     });
15 });
16 </script>
17 <title>Event</title>
18 </head>
19 <body>
20 <a href="#0">Click</a>
21 <button>event_off</button>
22 </body>

点击Button时取消了链接的点击事件,再点击链接不会出现提示框。

实际上,这里我们将a链接上的点击事件绑定函数全部取消了,如果只想取消某一个函数,那么我们在绑定时,就不能够采用匿名函数。并且在取消时,将函数对象也作为参数传入。

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <script src="./js/jquery-1.12.0.js"></script>
 4 <script>
 5 $(function(){
 6     var click_f2 = function(){
 7         alert(‘hello 2‘);
 8     };
 9     var a = $(‘a‘);
10     a.click(function(){
11         alert(‘Hello‘);
12     });
13     a.click(click_f2);
14
15     var bt = $(‘button‘);
16     bt.click(function(){
17         a.off(‘click‘,click_f2);
18         alert(‘click_f2 off‘);
19     });
20 });
21 </script>
22 <title>Event</title>
23 </head>
24 <body>
25 <a href="#0">Click</a>
26 <button>event_off</button>
27 </body>

这段代码中,我们只取消绑定了click_f2,而Hello仍然正常提示。同时我们可以发现绑定事件响应的先后顺序是根据绑定的先后来的。

事件通常是由用户操作触发,如果我们希望代码可以直接触发事件,则可用trigger(),这样能够避免我们写很多重复的代码。

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <script src="./js/jquery-1.12.0.js"></script>
 4 <script>
 5 $(function(){
 6     var a = $(‘a‘);
 7     a.click(function(){
 8         alert(‘Hello‘);
 9     });
10
11     var bt = $(‘button‘);
12     bt.click(function(){
13         a.trigger(‘click‘);
14     });
15 });
16 </script>
17 <title>Event</title>
18 </head>
19 <body>
20 <a href="#0">Click</a>
21 <button>event_off</button>
22 </body>

当我们点击按钮时,我们在代码内部触发了a的点击事件,因此也能弹出Hello。

动画:

我们已经知道了通过show()和hide()方法,可以让一个jQuery对象消失或者隐藏。但是当我们给方法传入一个参数时,页面就能呈现渐变的效果,一般传入的参数是毫秒数,但是‘slow‘和‘fast‘也能作为参数传入。

show()和hide()是对象由左上角逐渐收起或是展开,而slideUp()和slideDown()则是垂直方向的收起和展开。

fadeIn()和fadeOut()表示渐入渐出的效果。

同时,jQuery还通过animate()支持自定义动画效果。给animate传入最终的CSS样式和变化的时间,则可以在指定时间内渐变成最后的样式。同时,animate还能够传入回调函数,在动画结束后被调用。

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <title>Animate</title>
 4 <script src=‘./js/jquery-1.12.0.js‘></script>
 5 <script>
 6 $(function(){
 7     var bt = $(‘button‘);
 8     var div = $(‘#test-animate‘);
 9     bt.click(function(){
10         div.animate({
11             width: ‘256px‘,
12             height: ‘256px‘
13         },3000,function(){
14             alert(‘animate done‘);
15         });
16     });
17 });
18 </script>
19 </head>
20 <body>
21 <div id=‘test-animate‘></div>
22 <button>change CSS</button>
23 </body>
时间: 2024-12-11 12:37:15

jQuery学习(三)的相关文章

JQuery学习三(隐式迭代和节点遍历)

在JQuery中根据id获取控件,如果输入id错误是不报错的. 必要时可以通过写判断语句进行判断是否id写错 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title>JQuery</title> 5 <style type="text/css"> 6 .warning { 7 backgr

jQuery学习笔记之过滤器三(向上查找兄弟元素、向下查找兄弟元素)

向上查找兄弟元素的方法:prev方法.prevAll方法.prevUntil方法 向下查找兄弟元素:next方法.nextAll方法.nextUntil方法 向上查找兄弟元素 1.prev方法 2.prevAll方法 3.prevUntil方法 向下查找兄弟元素 1.next方法 2.nextAll方法 3.nextUntil方法 jQuery学习笔记之过滤器三(向上查找兄弟元素.向下查找兄弟元素)

Jquery学习之路(三) 实现弹出层插件

弹出层的应用还是比较多的,登陆,一些同页面的操作,别人的总归是别人的,自己的才是自己的,所以一直以来想写个弹出层插件.不多废话,直接开始吧! 不想看可以在这里直接下载源码xsPop.zip 1:遮罩层 要弹出层,先要用一个遮罩层挡在下面的页面,此遮罩层是全屏的,页面滚动也要有,所以设置 position: fixed;还要有透明效果,下面是我定义的遮罩层css,取名mask .mask { position: fixed; width: 100%; height: 100%; backgroun

Jquery Easy UI初步学习(三)数据增删改

第二篇只是学了加载用datagrid加载数据,数据的增删改还没有做,今天主要是解决这个问题了. 在做增删改前需要弹出对应窗口,这就需要了解一下EasyUi的弹窗控件. 摘自:http://philoo.cnblogs.com/ 我的理解,就是panel有的属性Window.dialog都有,同时保留自己的扩展属性方法 , 所以主要展示pannel的属性. Pannel 属性 名称 类型 说明 默认值 title string 显示在Panel头部的标题文字. null iconCls strin

jQuery学习-事件之绑定事件(三)

在上一篇<jQuery学习-事件之绑定事件(二)>我们了解了jQuery的dispatch方法,今天我们来学习下handlers 方法: handlers: function( event, handlers ) {         var sel, handleObj, matches, i,             handlerQueue = [],             delegateCount = handlers.delegateCount,             cur =

jQuery学习笔记(一):入门

jQuery学习笔记(一):入门 一.JQuery是什么 JQuery是什么?始终是萦绕在我心中的一个问题: 借鉴网上同学们的总结,可以从以下几个方面观察. 不使用JQuery时获取DOM文本的操作如下: 1 document.getElementById('info').value = 'Hello World!'; 使用JQuery时获取DOM文本操作如下: 1 $('#info').val('Hello World!'); 嗯,可以看出,使用JQuery的优势之一是可以使代码更加简练,使开

jQuery学习--------jQuery过滤器

each() 方法规定为每个匹配元素规定运行的函数. 过滤: 下标过滤: eq(index) //获取第index个元素 类过滤: hasClass(class)  //检查当前元素是否含有某个特定的类,如果有,返回true 例如:$("div").hasClass("div1") //含有div1类的div元素 表达式过滤: filter(expr)  //筛选出与指定表达式expr匹配的元素集合,用逗号分隔多个表达式 filter(fn)    //筛选出与指定

jQuery学习笔记10:Ajax技术

jQuery 库拥有完整的 Ajax 兼容套件.其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据. jQuery 采用了三层封装:最底层的封装方法为:$.ajax(),而通过这层封装了第二层有三种方法:.load().$.get()和$.post(),最高层是$.getScript()和$.getJSON()方法. 函数 描述 jQuery.ajax() 执行异步 HTTP (Ajax) 请求. .ajaxComplete() 当 Ajax 请求完成时注册要调用的处理程序.这是一个

jQuery学习之prop和attr的区别

http://blog.sina.com.cn/s/blog_655388ed01017cnc.html .prop() 1..prop( propertyName ) 获取匹配集合中第一个元素的Property的值 2. .prop( propertyName, value ) .prop( map ) .prop( propertyName, function(index, oldPropertyValue) ) 给匹配元素集合设定一个或多个属性 .prop()和 .attr()区别 下面是