《锋利的jQuery》读书笔记 第4章 jQuery中的事件和动画

1.$(document).ready()方法和window.onload方法的区别:        (P99)
1.1 window.onload方法是在网页中所有元素(包括元素的所有关联文件)完全加载到浏览器后才执行,而$(document).ready()方法注册的事件处理程序,在DOM完全就绪时就可以被调用,此时网页的所有元素对jQuery而言都是可以访问的,但是,这并不意味着这些元素关联的文件都已经下载完毕
1.2 window.onload事件一次只能保存对一个函数的引用,而$(document).ready()方法会在现有行为上追加新的行为

2.$(document).ready编写方式:                         (P102)
          2.1 $(document).ready(function() {
                    // 代码
               })
          2.2 $(function() {
                    // 代码
               })
               这种方法是2.1的简写形式
          2.3 $().ready(function() {
               })
               因为$()不带参数时,默认参数就是document,所以这就相当于2.1所示的形式

3. 事件绑定:          (P102)
          可以使用bind()方法来对匹配的元素进行特定事件的绑定,bind()方法的定义如下:
               bind( type, [, data], fn);
               type:为事件类型,可以是:blur、focus、load、resize、scroll、unload、click、dblclick、mousedown、mouseup等等
               data:为可选参数,作为event.data属性值传递给事件对象的额外数据对象
               fn:是用来绑定的处理函数

4.合成事件:      (P106)
          4.1 hover():用于模拟光标悬停事件
               方法定义为:hover(enter, leave);
               当光标移动到元素上时,会触发指定的enter函数,当光标移除元素时,会触发指定的leave函数
          4.2 toggle():用于模拟鼠标连续单击事件
               方法定义为:toggle(fn1, fn2, ......, fnN);
               第1此单击元素,触发指定的第1个函数(fn1),再次单击同一个元素触发第2个函数(fn2);....,

5.事件流(补充):           (P109)
     事件流描述的是从页面中接受事件的顺序。
     IE和Netscape开发团队提出了差不多是完全相反的概念。
     IE的事件流是事件冒泡流,即事件开始有具体的元素接收,然后逐级向上传播到较为不具体的节点。
     Netscape提出的事件流是事件捕获,事件捕获的思想是不太具体的节点应该更早接受事件,而最具体的节点应该最后接收事件。
     应该尽可能使用事件冒泡,而仅在有特殊需要的时候使用事件捕获。可以通过DOM2级事件处理程序中的addEventListener()来指定是在冒泡阶段还是捕获节点调用处理程序。需要注意的是jQuery不支持事件捕获。

6.jQuery中可以通过stopPropagation()方法来停止事件冒泡,可以通过preventDefault()方法来阻止元素的默认行为,可以在事件处理函数中返回false来同时停止事件冒泡和阻止元素的默认行为。 (P111)
 
--------------------------------------------------
author: cs_cjl
website: http://blog.csdn.net/cs_cjl
--------------------------------------------------

 
7.事件对象的属性:       (P113)
          7.1 event.type 事件的类型,比如在单击事件中它的值为"click"
          7.2 event.preventDefault()    阻止默认行为
          7.3 event.stopPropagation()  停止事件冒泡
          7.4 event.target 获取触发事件的元素
          7.5 event.relatedTarget 在mouseover中相当于IE浏览器的event.fromElement在mouseout中相当于IE浏览器的event.toElement
          7.6 event.pageX/event.pageY
               获取光标相对于页面的x坐标和y坐标
          7.7 event.which
               在鼠标单击事件中为鼠标的左(1)中(2)右(3)键
               在键盘事件中为键盘的按键,例如按下a为65
          7.8 event.metaKey
          7.9 event.originalEvent 指向元素的事件对象

8.移除事件                    (P115)
          jQuery中可以通过unbind()方法来移除事件
          方法定义:unbind([type] [, data]);
          (1)如果没有参数,则删除所有绑定的事件
          (2)如果提供了事件类型作为参数,则只删除该类型的绑定事件
          (3)如果把在绑定时传递的处理函数作为第2个参数,则只有这个特定的事件处理函数会被删除

9. one()方法和bind()方法类似,定义如下:     (P117)
     one(type, [data], fn);
     该方法绑定的事件只有在第1次触发的时候执行,之后毫无作用

10.模拟操作        (P118)
          可以通过调用trigger()方法来模拟触发事件
          方法定义为:
               trigger( eventType [, extraParameters] );
          trigger()方法触发事件后,会执行浏览器的默认操作,如果不想执行浏览器的默认操作可以使用     

          triggerHandler()方法
          方法定义为:
               triggerHandler( eventType [, extraParameters] );

11.bind()方法的其他用法        (P119)
          11.1 绑定多个事件类型
               例如:
               $("div").bind("mouseover mouseout", function() {
                    $(this).toggleClass("over");
               });
          11.2 添加事件命名空间,便于管理
               可以在绑定是指定命名空间,例如$("div").bind("click.plugin", ....);
               然后删除时只需要指定命名空间就可以删除改命名空间下绑定的所有事件,例如:$("div").unbind(".plugin")
          11.3 相同事件名称,不同命名空间的执行方法
               在trigger()方法中在指定的事件名称后面加上!号,例如:$("div").trigger("click!");则会只触发不包含在命名空间中对于的事件方法。

12.jQuery中的动画的相关方法                       (P132)
方法名说明
hide()和show()同时修改多个样式属性即高度、宽度和不透明度
fadeIn()和fadeOut()只改变不透明度
slideUp()和slideDown()只改变高度
fadeTo()只改变不透明度
toggle()用来代替hide()方法和show()方法,注意和连续鼠标单击事件中的区分开来
slideToggle()用来代替slideUp()方法和slideDown()方法
animate()属于自定义动画的方法,以上各种动画方法实质内容都调用了animate()方法
animate方法中指定属性的值的时候既可以指定绝对值,也可以指定相对值
例如:
     $(this).animate({left: "500px"}, 300);          // 绝对值
     $(this).animate({left: "+=500px"}, 300);          // 相对值
     $(this).animate({left: "-=500px"}, 300);          // 相对值

13.可以通过stop()方法来停止元素的动画      (P128)
          方法定义为:
               .stop( [clearQueue] [, jumpToEnd] );

14.动画队列:            (P133)
          (1)一组元素上的动画效果
                    当在一个animate()方法中应用多个属性时,动画是同时发生的
                    当以链式的写法应用动画方法时,动画是按照顺序发生的
          (2)多组元素上的动画效果
                    默认情况下,动画都是同时发生的
                    当以回调的形式应用动画方式时,动画是按照回调顺序发生的
          另外,在动画方法中,要注意其他非动画方法会插队(例如css()方法)要使非动画方法也按照顺序执行,需要把这些方法写在动画方法的回调函数中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,关于 jQuery事件,我可以和你分享一些学习笔记。 1. 绑定事件jQuery ,我们可以通过以下方式来绑定事件: ``` $(selector).event(function(){ // 事件处理程序 }) ``` 其,`selector` 表示要绑定事件的元素,`event` 表示要绑定的事件类型,比如 `click`、`mouseover` 等等。事件处理程序则是在事件触发时要执行的代码块。 2. 多个事件绑定 我们可以通过 `on()` 方法来同时绑定多个事件: ``` $(selector).on({ event1: function(){ // 事件处理程序1 }, event2: function(){ // 事件处理程序2 } }) ``` 这样,当 `event1` 或 `event2` 任意一个事件触发时,对应的处理程序都会被执行。 3. 解除事件 如果需要解除某个元素的事件处理程序,可以使用 `off()` 方法: ``` $(selector).off(event); ``` 其,`event` 表示要解除的事件类型。如果不指定事件类型,则会解除该元素上所有的事件处理程序。 4. 事件委托 在 jQuery ,我们可以使用事件委托来提高性能。事件委托是指将事件绑定到父元素上,而不是绑定到子元素上,然后通过事件冒泡来判断是哪个子元素触发了该事件。这样,当子元素数量较多时,只需要绑定一次事件,就可以监听到所有子元素的事件。 ``` $(selector).on(event, childSelector, function(){ // 事件处理程序 }) ``` 其,`selector` 表示父元素,`event` 表示要绑定的事件类型,`childSelector` 表示要委托的子元素的选择器,事件处理程序则是在子元素触发事件时要执行的代码块。 以上是 jQuery 事件的一些基本操作,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值