jQuery的事件模型

jQuery的事件模型有以下特点:

统一论事件处理的各种方法
允许在每个元素上位每个事件建立多个处理程序
统一了Event对象的传递方法
为事件管理和操作提供了统一的方法
1、绑定
     bind方法绑定 :bind(type,[data],fn)
     快捷方式绑定:jQuery定义了20个快捷方法,与2级事件模型中的时间类型意义对应
                             blur()             focus()                   mousedown()         resize()
                             change()      keydown()              mousemove()         scroll()
                             click()           keypress()               mouseout()             select()
                             dbclick()       keyup()                  mouseover()            submit()
                             error()           load()                     mouseup()               unload()
     使用one绑定:执行一次相应后就消失
     绑定多个事件:$("div").bind("mouseover mouseout",function(event){...});
     
2、注销
      注销所有:                        $("p").unbind();
      注销指定类型的事件:       $("p").unbind("mouseover");
      注销特定的事件处理函数:$("p").unbind("mouseover",e);
3、Event对象
      type      target             relatedTarget          
      altKey        ctrlKey          shiftKey        metalKey
      which  
       pageX    pageY       screenX    screenY  
       data
       preventDefault()   stopPropagation
4、事件触发
      trigger(type,[data])
      trigger也会触发同名的浏览器默认行为,如使用trigger()触发一个submit时间,同样会使浏览器提交表单。如果要阻止默认行为,可以在事件处理函数中设置返回值为false
      
      triggerHandler()是对trigger()的补充,但有以下区别
      不会触发浏览器的默认事件
      只触发jQuery对象集合中第一个元素的事件处理函数
      反回的是事件处理函数的返回值,而不是jQuery对象
      
      快捷触发: blur()   change()    click()    dbclick()   error()  focus()
                         keydown()   keyup()  keypress()   
                         select()  submit()
5、事件切换
       使用toggle()切换:为click事件banging函数,每次单击依次调用
       可以包含多个函数形参,顺序触发
 
        hover()切换:模仿悬停事件,既输本移动、移出一个对象的方法
        mouseout事件有一个很严重的错误:如果鼠标移动到当前元素包含的子元素上时,将会触发当前元素的mouseout和mousover事件,由于jQuery的是bind()  mouseover()  mouseout()都是在原生事件的直接包装,因此也会出现上述问题,而hover()修正了该错误
6、事件委派
      live():给当前以及未来将会匹配的元素绑定一个事件处理函数,也能房顶自定义事件。用法与bing()相同
      与bind()的区别:
       bind()只为当前匹配的元素绑定,live()还为后面动态生成的元素绑定
       bind()可以绑定多个时间,live()只能一次绑定一个事件
7、取消事件委派
       die(),类似于unbind()
       不带参数,移出所有绑定的live事件
        设置type参数:移除对应的Live事件
        同时指定了第二个参数:只移出指定事件的处理方法
8、自定义事件
        触发自定义事件相当于调用自定义函数
posted @ 2012-11-19 14:39  woaibaojinyuan  阅读(136)  评论(0)    收藏  举报