zoukankan      html  css  js  c++  java
  • jquery的事件与应用

    页面加载时触发ready()事件

    ready()事件类似于onLoad()事件,但前者只要页面的DOM结构加载后便触发,而后者必须在页面全部元素加载成功才触发,ready()可以写多个,按顺序执行。此外,下列写法是相等的:

    $(document).ready(function(){})等价于$(function(){});

    在API中的概述、

    当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。

    这是事件模块中最重要的一个函数,因为它可以极大地提高web应用程序的响应速度。

    简单地说,这个方法纯粹是对向window.load事件注册事件的替代方法。通过使用这个方法,可以在DOM载入就绪能够读取并操纵时立即调用你所绑定的函数,而99.99%的JavaScript函数都需要在那一刻执行。

    有一个参数--对jQuery函数的引用--会传递到这个ready事件处理函数中。可以给这个参数任意起一个名字,并因此可以不再担心命名冲突而放心地使用$别名。

    请确保在 <body> 元素的onload事件中没有注册函数,否则不会触发+$(document).ready()事件。

    可以在同一个页面中无限次地使用$(document).ready()事件。其中注册的函数会按照(代码中的)先后顺序依次执行。

    使用bind()方法绑定元素的事件

    bind()方法绑定元素的事件非常方便,绑定前,需要知道被绑定的元素名,绑定的事件名称,事件中执行的函数内容就可以,它的绑定格式如下:

    $(selector).bind(event,[data] function)

    参数event为事件名称,多个事件名称用空格隔开,function为事件执行的函数。

    type,[data],function(eventObject)String,Object,FunctionV1.0

    type: 含有一个或多个事件类型的字符串,由空格分隔多个事件。比如"click"或"submit",还可以是自定义事件名。

    data:作为event.data属性值传递给事件对象的额外数据对象

    fn:绑定到每个匹配元素的事件上面的处理函数


    使用hover()方法切换事件

    hover()方法的功能是当鼠标移到所选元素上时,执行方法中的第一个函数,鼠标移出时,执行方法中的第二个函数,实现事件的切实效果,调用格式如下:

    $(selector).hover(overout);

    over参数为移到所选元素上触发的函数,out参数为移出元素时触发的函数。

    一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法。这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。

    当鼠标移动到一个匹配的元素上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。而且,会伴随着对鼠标是否仍然处在特定元素中的检测(例如,处在div中的图像),如果是,则会继续保持“悬停”状态,而不触发移出事件(修正了使用mouseout事件的一个常见错误)。

     
    $(function () {
                   $("div").hover(function(){
                      $(this).addClass("orange")
                   },function(){
                      $(this).removeClass("orange")
                   });
                });

    使用toggle()方法绑定多个函数

    toggle()方法可以在元素的click事件中绑定两个或两个以上的函数,同时,它还可以实现元素的隐藏与显示的切换,绑定多个函数的调用格式如下:

    $(selector).toggle(fun1(),fun2(),funN(),...)

    其中,fun1,fun2就是多个函数的名称

    API中的相关内容:

    toggle([speed],[easing],[fn])

    概述

    用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件。

    如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。

    参数

    fn,fn2,[fn3,fn4,...]Function,....V1.0

    fn:第一数次点击时要执行的函数。

    fn2:第二数次点击时要执行的函数。

    fn3,fn4,...:更多次点击时要执行的函数。

    [speed] [,fn]String,FunctionV1.0

    speed: 隐藏/显示 效果的速度。默认是 "0"毫秒。可能的值:slow,normal,fast。"

    fn:在动画完成时执行的函数,每个元素执行一次。

    [speed], [easing ], [fn ] String,String,FunctionV1.4.3

    speed: 隐藏/显示 效果的速度。默认是 "0"毫秒。可能的值:slow,normal,fast。"

    easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"

    fn:在动画完成时执行的函数,每个元素执行一次。

    switchBooleanV1.3

    用于确定显示/隐藏的开关。如:true - 显示元素,false - 隐藏元素

     

    无参数描述:

    对表格切换显示/隐藏

    使用unbind()方法移除元素绑定的事件

    unbind()方法可以移除元素已绑定的事件,它的调用格式如下:

    $(selector).unbind(event,fun)

    其中参数event表示需要移除的事件名称,多个事件名用空格隔开,fun参数为事件执行时调用的函数名称。

    参数

    type,[fn]String,FunctionV1.0

    type:删除元素的一个或多个事件,由空格分隔多个事件值。

    fn:要从每个匹配元素的事件中反绑定的事件处理函数

    type,falseString,boolV1.4.3

    type:删除元素的一个或多个事件,由空格分隔多个事件值

    false:设置为false会使默认的动作失效。

    eventObjStringV1.0

    事件对象。这个 eventObj 参数来自事件绑定函数

    HTML:
    
     <h3>unbind()移除绑定的事件</h3>
            <input id="btntest" type="button" value="移除事件" />
            <div>土豪,咱们交个朋友吧</div>
     
    $(function () {
                    $("div").bind("click",
                    function () {
                        $(this).removeClass("backcolor").addClass("color");
                    }).bind("dblclick", function () {
                        $(this).removeClass("color").addClass("backcolor");
                    });
                    $("#btntest").bind("click",function(){
                       $("div").unbind("dblclick"); //移除双击事件
                    })
     
                });

    使用one()方法绑定元素的一次性事件

    one()方法可以绑定元素任何有效的事件,但这种方法绑定的事件只会触发一次,它的调用格式如下:

    $(selector).one(event,[data],fun)

    参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。

    为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。

    在每个对象上,这个事件处理函数只会被执行一次。其他规则与bind()函数相同。这个事件处理函数会接收到一个事件对象,可以通过它来阻止(浏览器)默认的行为。如果既想取消默认的行为,又想阻止事件起泡,这个事件处理函数必须返回false。

    多数情况下,可以把事件处理函数定义为匿名函数(见示例一)。在不可能定义匿名函数的情况下,可以传递一个可选的数据对象作为第二个参数(而事件处理函数则作为第三个参数),见示例二。

    参数

    type,[data],fnString,Object,FunctionV1.1

    type:添加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。

    data:将要传递给事件处理函数的数据映射

    fn:每当事件触发时执行的函数。

    示例

    描述:

    当所有段落被第一次点击的时候,显示所有其文本。

    jQuery 代码:
    $("p").one("click", function(){
      alert( $(this).text() );
    });
     

    调用trigger()方法手动触发指定的事件

    trigger()方法可以直接手动触发元素指定的事件,这些事件可以是元素自带事件,也可以是自定义的事件,总之,该事件必须能执行,它的调用格式为:

    $(selector).trigger(event)

    其中event参数为需要手动触发的事件名称。

    概述

    在每一个匹配的元素上触发某类事件。

    这个函数也会导致浏览器同名的默认行为的执行。比如,如果用trigger()触发一个'submit',则同样会导致浏览器提交表单。如果要阻止这种默认行为,应返回false。

    你也可以触发由bind()注册的自定义事件而不限于浏览器默认事件。

    事件处理函数会收到一个修复的(规范化的)事件对象,但这个对象没有特定浏览器才有的属性,比如keyCode。

    jQuery也支持 <a href="http://docs.jquery.com/Namespaced_Events">命名空间事件</a>。这允许你触发或者解除绑定一组特定的事件处理函数,而无需一一个指定。你可以在事件类型后面加上感叹号 ! 来只触发那些没有命名空间的事件处理函数。

    jQuery 1.3中新增:

    所有触发的事件现在会冒泡到DOM树上了。举例来说,如果你在一个段落p上触发一个事件,他首先会在这个元素上触发,其次到父元素,在到父元素的父元素,直到触发到document对象。这个事件对象有一个 .target 属性指向最开始触发这个事件的元素。你可以用 stopPropagation() 来阻止事件冒泡,或者在事件处理函数中返回false即可。

    事件对象构造器现在已经公开,并且你可以自行创建一个事件对象。这个事件对象可以直接传递给trigger所触发的事件处理函数。事件对象的完整属性列表可以在 <a href="http://docs.jquery.com/Events/jQuery.Event">jQuery.Event</a> 的文档里找到。

    你可以有三种方式指定事件类型:

    * 你可以传递字符串型的事件名称(type参数)。

    * 你可以使用jQuery.Event对象。可以将数据放进这个对象,并且这个对象可以被触发的事件处理函数获取到。

    * 最后,你可以传递一个带有数据的字面量对象。他将被复制到真正的jQuery.Event对象上去。 注意在这种情况下你'''必须'''指定一个 <em>type</em> 属性。

    $("p").bind("setup", function () {//给jquery对象创建一个绑定事件。
    alert("你启动了自定义事件");
    });
    $("#setbtn").click(function(){//给一个按钮定义一个click事件,让上面那个对象启动自定义事件
    $("p").trigger("setup");
    })
    理解:目前自己对这个东西的理解就是一个像中介的东西,不是自己直接使用自定义事件,自定义事件的触发是通过另一个事件来触发。
     

    文本框的focus和blur事件

    focus事件在元素获取焦点时触发,如点击文本框时,触发该事件;而blur事件则在元素丢失焦点时触发,如点击除文本框的任何元素,都会触发该事件。

    var $txtset = $("#txtset");//文本框对象
    $txtset.bind("blur",function(){
        var $length = $txtset.val().length;//定义文本输入框长的得对象
        if($length<=1||$length>4){
            $("#addTxt").html("请确认您的输入")
        }else{
            $("#addTxt").empty()
        }
    })

    返回值:jQueryon(events,[selector],[data],fn)用它来替换bind()方法;

    概述

    在选择元素上绑定一个或多个事件的事件处理函数。

    on()方法绑定事件处理程序到当前选定的jQuery对象中的元素。在jQuery 1.7中,.on()方法 提供绑定事件处理程序所需的所有功能。帮助从旧的jQuery事件方法转换,see .bind(), .delegate(), 和 .live(). 要删除的.on()绑定的事件,请参阅.off()。要附加一个事件,只运行一次,然后删除自己, 请参阅.one()

    参数

    events,[selector],[data],fnV1.7

    events:一个或多个用空格分隔的事件类型和可选的命名空间,如"click"或"keydown.myPlugin" 。

    selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择的< null或省略,当它到达选定的元素,事件总是触发。

    data:当一个事件被触发时要传递event.data给事件处理函数。

    fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。

    events-map,[selector],[data]V1.7

    events-map:个用字符串表示的,一个或多个空格分隔的事件类型和可选的命名空间,值表示事件绑定的处理函数。

    selector:一个选择器字符串过滤选定的元素,该选择器的后裔元素将调用处理程序。如果选择是空或被忽略,当它到达选定的元素,事件总是触发。

    data:当一个事件被触发时要传递event.data给事件处理函数。

    下拉列表框的change事件

    当一个元素的值发生变化时,将会触发change事件,例如在选择下拉列表框中的选项时,就会触change事件。

    //        change()
            var $sel = $("#sel");
            $sel.on("change",function(){
                //判断选择的值,每一个值对应一个特殊的样式
                if($sel.val()=="apple"){
                    $(this).css({color:"white",backgroundColor:"red"});
                }else if($sel.val()=="pear"){
                    $(this).css("color","green")
                }else{
                    $(this).css("background-color","pink")
                }
            })

    调用live()方法绑定元素的事件

    bind()方法相同,live()方法与可以绑定元素的可执行事件,除此相同功能之外,live()方法还可以绑定动态元素,即使用代码添加的元素事件,格式如下:

    $(selector).live(event,[data],fun)

    参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。

    注意:从 jQuery 1.7 开始,不再建议使用 .live() 方法。1.9不支持.live(),本节代码编辑器里的js引用版本改为了1.8。
     
     
    $(function () {
                    $("#btntest").live("click mouseout",function(){
                        $(this).attr("disabled","true")
                    })
                    $("body").append("<input id='btntest' type='button' value='点击或移出就不可用了' />");
                });
     
    可以对页面上的元素进行操作,如以上的代码,页面上本没有这个button的按钮,但是就先使用了live()方法对其进行了事件的绑定。
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    分布式跟踪工具pinpoint
    python调用阿里云产品接口实现自动发现异常访问ip并禁用2小时
    centos病毒
    Google Earth API开发者指南
    在vs中使用ZedGraph控件的一些记录
    A flexible charting library for .NET
    ZedGraph.dll
    WPF 动态模拟CPU 使用率曲线图
    C#调用GoogleEarth COM API开发
    使用WeifenLuo.WinFormsUI.Docking界面布局中的保存配置
  • 原文地址:https://www.cnblogs.com/gavinzzh-firstday/p/5450653.html
Copyright © 2011-2022 走看看