zoukankan      html  css  js  c++  java
  • JQuery之事件处理

    JQuery不支持捕获模型

    冒泡模型解析

    <body>
          <div>
                 <input id="bntShow" type="button" value="点击" class="bnt"/>
          </div>
          <div class="classShow">   </div>
    </body>

    var i = ;
    $("body,div,#bntShow").click(function(){
          i++;
          $(".classShow").show().html("冒泡现象")
          .append("<div><b>运行次数"+i+"</b></div>")
    });

    输出结果:运行次数3

    单击一次button却运行了3次相同的程序,$(“body,div,#bntShow”)存在冒泡现象,分别触发了#bntShow、div、body的click事件,所以运行了三次i++的操作

    在JQuery中能够用stopPropagation()方法阻止冒泡

    在上面的脚本中增加这句话,运行次数才干为1

    $("body,div,#bntShow").click(function(){
          i++;
          $(".classShow").show().html("冒泡现象")
          .append("<div><b>运行次数"+i+"</b></div>");
          event.stopPropagation();  //还可使用return false阻止冒泡
    });

    事件方法

    bind()                  向匹配元素附加一个或很多其它事件处理器

    blur()                  触发、或将函数绑定到指定元素的 blur 事件

    change()             触发、或将函数绑定到指定元素的 change 事件

    click()                 触发、或将函数绑定到指定元素的 click 事件

    dblclick()            触发、或将函数绑定到指定元素的 doubleclick 事件

    delegate()          向匹配元素的当前或未来的子元素附加一个或多个事件处理器

    die()                    移除全部通过live() 函数加入的事件处理程序。

    error()                触发、或将函数绑定到指定元素的 error 事件

    event.isDefaultPrevented()     返回 event 对象上是否调用了event.preventDefault()。

    event.pageX       相对于文档左边缘的鼠标位置。

    event.pageY              相对于文档上边缘的鼠标位置。

    event.preventDefault()    阻止事件的默认动作。

    event.result        包括由被指定事件触发的事件处理器返回的最后一个值。

    event.target              触发该事件的 DOM 元素。

    event.timeStamp      该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。

    event.type          描写叙述事件的类型。

    event.which        指示按了哪个键或button。

    focus()                触发、或将函数绑定到指定元素的 focus 事件

    keydown()           触发、或将函数绑定到指定元素的 key down 事件

    keypress()           触发、或将函数绑定到指定元素的 key press 事件

    keyup()               触发、或将函数绑定到指定元素的 key up 事件

    live()                   为当前或未来的匹配元素加入一个或多个事件处理器

    load()                  触发、或将函数绑定到指定元素的 load 事件

    mousedown()     触发、或将函数绑定到指定元素的 mouse down 事件

    mouseenter()     触发、或将函数绑定到指定元素的 mouse enter 事件

    mouseleave()     触发、或将函数绑定到指定元素的 mouse leave 事件

    mousemove()     触发、或将函数绑定到指定元素的 mouse move 事件

    mouseout()         触发、或将函数绑定到指定元素的 mouse out 事件

    mouseover()       触发、或将函数绑定到指定元素的 mouse over 事件

    mouseup()          触发、或将函数绑定到指定元素的 mouse up 事件

    one()                   向匹配元素加入事件处理器。每一个元素仅仅能触发一次该处理器。

    ready()               文档就绪事件(当 HTML 文档就绪可用时)

    resize()               触发、或将函数绑定到指定元素的 resize 事件

    scroll()                触发、或将函数绑定到指定元素的 scroll 事件

    select()               触发、或将函数绑定到指定元素的 select 事件

    submit()              触发、或将函数绑定到指定元素的 submit 事件

    toggle()                     绑定两个或多个事件处理器函数,当发生轮流的 click 事件时运行。

    trigger()             全部匹配元素的指定事件

    triggerHandler()       第一个被匹配元素的指定事件

    unbind()              从匹配元素移除一个被加入的事件处理器

    undelegate()      从匹配元素移除一个被加入的事件处理器,如今或将来

    unload()              触发、或将函数绑定到指定元素的 unload 事件

    bind(type,[data],function)方法

    $("div").bind("clickmouseout",function(){  //绑定多个事件,能够用空格分开
          })

    通过映射方法绑定

    $("div").bind(
          {
                 focus:function(){ },
                 change:function(){ }
          }
    );

    带參数的情况

    var message = "运行的是focus事件";
    $("div").bind("focus",{msg:message},function(event){
          $("#div1").show()
          .html(event.data.msg);
    })

    hover()方法

    此方法能够使元素在鼠标悬停和鼠标移除的事件中进行切换,该方法也能够通过mouseenter和mouseleave进行替换

    $("a").hover(
          function(){ },
          function(){ }
    )

    等价于

    $("a").mouseenter(
          function(){ };
    )
    $("a").mouseleave(
          function(){ };
    )

    toggle()方法

    此方法的功能是每次单击后依次调用定义的函数

    $("img").toggle(
    function(){
          $("img").attr("src","imags/1.jpg");
          $("img").attr("title",this.src);
    },
    function(){
          $("img").attr("src","imags/2.jpg");
          $("img").attr("title",this.src);
    },
    function(){
          $("img").attr("src","imags/3.jpg");
          $("img").attr("title",this.src);
    }
    );  //单击图片,每次换一张,依次运行三个函数

    unbind(type,function)方法

    $("input:eq(0)").bind("click",function(){
          $("#divtip").append("button一的单击事件");
    });
    functionoClick(){
          $("#divtip").append("button二的单击事件");
    };
    $("input:eq(1)").bind("click",oClick);
     
    $("input:eq(2)").bind("click",function(){
          $("input").unbind();  //移除所有input表单的单击事件
          //$("input").unbind("click",oClick);  //仅移除button二的事件
    });

    <input type="button" value="按钮一" class="bnt"/>
    <input type="button" value="按钮二" class="bnt"/>
    <input type="button" value="删除事件" class="bnt"/>
    <div id="divtip"> </div>

    one(type,[data],function)方法

    此方法用于仅触发一次的事件绑定,使用方法与bind()方法类似

    trigger(type,[data])方法

    $("button").click(function(){
       $("input").trigger("select");
    });

    delegate(childSelector,event,data,function)方法

    $("div").delegate("button","click",function(){
        $("p").slideToggle();
      });

    <div style="background-color:red">
    	<p>这是一个段落。</p>
    	<button>请点击这里</button>
    </div>


  • 相关阅读:
    自定义一个运行时异常
    对象的知识点正确解释
    decimal模块
    B+树
    Web框架系列之Tornado
    初识git
    Mysql表的操作
    MySQl创建用户和授权
    MySql安装和基本管理
    为什么用Mysql?
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4310510.html
Copyright © 2011-2022 走看看