1. 程式人生 > >【jQuery學習筆記-----jQuery事件名稱空間】

【jQuery學習筆記-----jQuery事件名稱空間】

jQuery事件名稱空間

jQuery支援事件名稱空間,以方便事件管理。例如,在下面的示例中,為div元素繫結多個事件型別,然後使用名稱空間進行規範,從而方便管理。所謂事件名稱空間,就晨事件型別後面以點語法附加一個別名,以便引用事件,如”click.a”,其中”a”就是click當前事件型別的別名,即事件名稱空間

如:$(“div”).bind(“click.a”,function(){});

$(“div”).bind(“dbclick.a”,function(){});

$(“div”).bind(“mouseover.a”,function(){});

$(“div”).bind(“mouseout.a”,function(){});

若在所有繫結的事件型別後面附加名稱空間,這樣在刪除事件時,就可以直接指定名稱空間。如$(“div”).unbind(“.a”);

同樣,如果相同的事件型別設定不同的名稱空間,如果僅刪除某一個事件處理程式,則只需要指定名稱空間即可。

另外,在trigger()方法中,如果事件型別後面附加感嘆號,則表示觸發不包含名稱空間的特定事件型別。

$(“div”).bind(“click”,function(){});

$(“div”).bind(“click.a”,function(){});

$(“div”).trigger(“click!”)//注意click型別後面的感嘆號,它將觸發第一個註冊

多事件繫結

對於同一個物件的多個事件,可以連寫的形式串在一起。

$(“div”).bind().bind()…

自定義事件

jQuery支援自定義事件,所有自定義事件都可以通過jQuery方法觸發,例如下面的示例自定一個Delay事件型別,並把它繫結到input元素物件上,然後在按鈕單擊事件中觸發自定義事件

$(“input”).bind(“delay”,function(event){

    setTimeout(function(){

          alert(event.type);

    },1000);

});

$(“input”).click(function(){

      $(“input”).trigger(“delay”); //觸發自定義事件

});

自定義事件不是真正意義上的事件,可以把它理解為自定義函式,觸發自定義事件就相當於呼叫自定義函式。