zoukankan      html  css  js  c++  java
  • 事件

    事件驱动:当页面完全加载后,用户通过鼠标或键盘触发页面中绑定事件的元素,即可触发

    常用事件:

      

    绑定事件

      通过bind()方法为元素绑定事件,可传递三个参数band(type,[data],fn),type表示一个或多个类型的事件名字符串,多个事件用空格隔开;data作为event.data属性值传递一个额外的数据;fn表示绑定到指定元素的函数

      bind({type1:fn1,type2:fn2,...}:将事件和元素绑定

    删除事件

      unbind():删除所有事件

      unbind(type):删除指定事件

      unbind(type,fn):删除指定事件的绑定函数

    简写事件

      click(fn):单击事件

      dbclick(fn):双击事件

      mousedown(fn):鼠标左键按下事件

      mouseup(fn):鼠标左键弹起事件

      $(window).onload(fn):页面卸载事件

      $(window).resize(fn):文档改变大小事件

      $(window).scroll(fn):滚动条改变事件

      select(fn):文本选定事件

      change(fn):文本改变事件

      submit(fn):表单提交事件,作用对象是form

      mouseover(fn):当鼠标指针位于元素上方时,触发

      mouseout(fn):当鼠标指针离开元素上方时,触发

      mouseenter(fn):当指针进入元素时,触发

      mouseleave(fn):当指针移出元素时,触发

      keydown(fn):键盘按键按下事件,返回键码

      keyup(fn):键盘按键弹起事件,返回键码

      keypress(fn):键盘按键按下事件,返回字符编码

      focus(fn):得到焦点事件,必须作用在当前元素

      blur(fn):失去焦点事件,必须作用在当前元素

      focusin(fn):得到焦点事件,可作用子元素

      foucsout(fn):失去焦点事件,可作用子元素

    复合事件

      ready(fn):当DOM加载完毕触发事件

      hover(fn1,fn2):结合mouseenter和mouseleave事件

    事件对象:event对象,通过处理函数默认传递接受

      事件对象属性

    属性名称 描述 举例
    type
    事件类型.如果使用一个事件处理函数来处理多个事件, 可以使用此属性获得事件类型,比如click.
    $("a").click(function(event) {
                alert(event.type);
                });
    target
    获取事件触发元素DOM对象
    $("a[href=http://google.com]").click(function(event) {
                alert(event.target.href);
                });
    data
    事件调用时传入额外参数.
    $("a").each(function(i) {
                $(this).bind('click', {index:i}, function(e){
                alert('my index is ' + e.data.index);
                });
                });
    relatedTarget
    对于鼠标事件, 标示触发事件时离开或者进入的DOM元素
    $("a").mouseout(function(event) {
                alert(event.relatedTarget);
                });
    currentTarget
    冒泡前的当前触发事件的DOM对象, 等同于this.
    $("p").click(function(event) {
                alert( event.currentTarget.nodeName );
                });

    结果:P

    pageX/Y
    鼠标事件中, 事件相对于页面原点的水平/垂直坐标.
    $("a").click(function(event) {
                alert("Current mouse position: " + event.pageX + ", " + event.pageY );
                });
     screenX/screenY
    获取显示器屏幕位置的水平/垂直坐标(非jQuery)
    $("a").click(function(event) {
                alert("Current mouse position: " + event.screenX + ", " + event.screenY );
                });
    clientX/clientY
    获取相对于页面视口 的水平/垂直坐标(非Jquery)  
    $("a").click(function(event) {
                alert("Current mouse position: " + event.clientX + ", " + event.clientY );
                });
    result
    上一个事件处理函数返回的值
    $("p").click(function(event) {
                return "hey"
                });
                $("p").click(function(event) {
                alert( event.result );
                });

    结果:”hey”

    timeStamp
    事件发生时的时间戳.
    var last;
                $("p").click(function(event) {
                if( last )
                alert( "time since last event " + event.timeStamp - last );
                last = event.timeStamp;
                });
     which  获取鼠标的左中右键(1,2,3),或键盘的按键

     $('input').bind('mousedown',function(e){

      alert(e.which);

    });

    altKey/shiftKey/ctrlKey/metaKey  获取是否按下了alt、shift、ctrl或meta键

    $('input').bind('click',function(e){

      alert(e.ctrlKey);

    });

      冒泡行为:如果在页面中重叠多个元素,并且重叠的这些元素都绑定到同一个事件,就会出项冒泡问题

      阻止冒泡:在函数中使用stopPropagation()方法,可阻止冒泡

      默认行为:页面中的元素存在着许多默认行为,如右键document会出现菜单,点击超链接会打开新页面等等

      阻止默认行为:在函数中使用preventDefault()方法,可阻止默认行为

      阻止默认行为和冒泡:return false;

      isDefalutPrevented():判断是否调用了PreventDefault()方法

      isPropagationStopped():判断是否调用了stopPropagation方法

      stopImmediatePropagation():取消冒泡行为,并且取消该事件的后续事件处理函数

      isImmediatePropagationStopped():判断是否调用了stopImmediatePropagation方法

    高级事件:

      模拟操作:模拟用户行为的操作

        trigger(operation):模拟用户的operation操作

        trigger(operation,[data1,data2,...]):data表示传递的数据,数据只有一个时,中括号可省略

        triggerHandle(operation):模拟用户行为,但不执行默认行为

        trigger和triggerHandle区别

          trigger会执行默认行为,triggerHandle不执行默认行为

          trigger会匹配所有元素,triggerHandle只返回第一个元素

          trigger返回JQuery对象,可使用连缀,triggerHandle()返回return值或undefined

          trigger会冒泡,triggerHandle不会冒泡

      命名空间

        在操作后面加上".***",可精确命名事件,方便调用

      事件委托:通过事件冒泡的特性,让子元素绑定的事件冒泡到父元素,然后再进行处理

        方法:live(),默认绑定document元素,不推荐使用,JQ1.4.3以后废用

          作用:1、绑定的是父元素, 只会绑定一次事件,不会导致重复

             2、可动态绑定事件

          delegate():live的替代方法,语义清晰

          object.delegate(element,operation,function):object为绑定父元素对象,element为绑定的子元素,operation为对绑定元素的操作,function为调用的方法

      on、off、one:JQ1.7以后使用

        on:绑定方法

          on(operation[ operation2...],fn):operation绑定元素触发事件,可绑定多个;fn触发函数

          on(operation[ operation2...],data,fn):data传递额外的数据

          on({operation1:fn1,operation2:fn2,...}):多元素触发事件相应的函数

          on(operation,false):阻止默认行为和冒泡行为

          on(operation,element,fn):事件委托,element表示绑定的子元素

        off:解绑方法

          off(operation):移除某一元素的操作

          off(operation,fn):移除某一元素的函数

          off(operation,element,fn):解绑事件委托,element表示绑定的子元素

        one:只触发一次

          one(operation,fn):仅一次事件触发

          one(operation,element,fn):绑定的父元素也只触发一次

        

  • 相关阅读:
    nth-of-type()的用法
    H5禁止底部横向滚动条,使一个元素居中
    CRM项目-1模型与站点管理
    django-debug-toolbar
    python发送邮件
    os 模块
    Django(三) ORM操作
    Django框架初识
    JS 正则表达式
    前端-高潮 jQuery
  • 原文地址:https://www.cnblogs.com/HuangWj/p/4499179.html
Copyright © 2011-2022 走看看