您的位置:首页 > Web前端 > JQuery

jQuery.bind()事件

2016-06-12 15:00 573 查看
jQuery.bind():绑定事件
参数:bind( eventType [, eventData], handler(eventObject))

eventType是一个字符串类型的事件类型,就是你所需要绑定的事件。这类类型可以包括如下:blur, focus, focusin, focusout, load, resize, scroll, unload, click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, mouseenter, mouseleave, change, select, submit, keydown, keypress,
keyup, error。

eventData参数是一个可选参数,不过它在平时用的比较少。如果提供了这个参数,那么我们就能把一些附加信息传递给事件处理函数了。

Handler是用来绑定的处理数,其实也就是回调函数,处理完数据之后相应的方法。

案例1:一个简单的bind()事件
$("#id").bind("click",function(){
    alert("hello!");
});

案例2:绑定多个事件

$("#id").bind("click",function(){

    alert("hello!");

}).bind("mouseout",function(){

    $("#id").show();

});

案例3:事件对象
$("#id").bind("dblclick",function(){
    var str = "( " + event.pageX + ", " + event.pageY + " )";
    $("span").text("Click happened! " + str);
  })

$("p").bind("dblclick", function(){

    $("span").text("Double-click happened in " + this.nodeName);
});

$("p").bind("mouseenter mouseleave", function(event){

    $(this).toggleClass("over");
});

------------------------------------------------------------------
jQuery.unbind():
参数:unbind([type],[data],Handler) 

unbind()事件是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件。如果没有参数,则删除所有绑定的事件。

案例1:
$(function () {

    $("#LooseFocus").unbind("click", foo);
})

jQuery.one():

其实one和bind是一样,都是为了绑定事件而产生的。One与bind基本上差不多,不同的在调用 jQuery.event.add时,把注册的事件处理的函数做了一个小小的调整。One调用了jQuery.event.proxy进行了代理传入的事 件处理函数。在事件触发调用这个代理的函数时,先把事件从cache中删除,再执行注册的事件函数。这里就是闭包的应用,通过闭包得到fn注册的事件函数 的引用。

one(type,[data],fn)

bind & one

bind() 实现:
bind : function(type, data, fn) {

    return type == "unload" ? this.one(type,data,fn) : this.each(function(){
    //fn || data, fn && data实现了data参数可有可无
    jQuery.event.add(this, type, fn || data, fn && data);
});

one() 实现:
one : function(type, data, fn) {

    var one = jQuery.event.proxy(fn || data, function(event) {
        jQuery(this).unbind(event, one);
        return (fn || data).apply(this, arguments);
        //this->当前的元素
    });
return this.each(function() {

    jQuery.event.add(this, type, one, fn && data);
});

javaScript 冒泡事件:
冒泡实例代码:

<body onclick="MyBodyClick()">

    <div onclick="MyClickOut()">

        <div onclick="MyClickInner()">

            <span id="MySpan">I love JQuery!!</span>

        </div>
    </div>
</dody>

<script type="text/javascropt">
    function MyClickOut() {
        alert("outer Div");
    }
    

    function MyClickInner() {
        alert("Inner Div");
    }

    function MyBodyClick() {
        alert("Body Click");
    }

    $(function () {
        $("#MySpan").bind("click", function (event) {
            alert("I'm span");
            event.stopPropagation();
      });

</script>

cancelBubble() IE 的阻止冒泡事件、stopPropagation()Firefox和Chrome等其他浏览器 都是阻止冒泡
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jQuery事件