jquery的命名空間

2021-09-22 13:15:57 字數 2031 閱讀 1103

functiona(event )

functionb(event )

functionc(event )

var$btn1 =$("#btn1");

// 為btn1元素的click事件繫結事件處理函式

$btn1.bind("click.foo.bar",a );

$btn1.bind("click.test.foo",b );

$btn1.bind("click.test",c );

// 觸發btn1的click事件,不限定命名空間

$btn1.trigger("click");// 觸發a、b、c

// 觸發btn1的包含命名空間foo的click事件

$btn1.trigger("click.foo");// 觸發a、b

// 觸發btn1的包含命名空間test的click事件

$btn1.trigger("click.test");// 觸發b、c

// 觸發btn1的同時包含命名空間foo和test的click事件

$btn1.trigger("click.foo.test");// 觸發b

$(「#haorooms」).on("click.a",function(){});$(「#haorooms」).on("click.a.bb",function(){});$(「#haorooms」).on("dbclick.a",function(){});$(「#haorooms」).on("mouseover.a",function(){});$(「#haorooms」).on("mouseout.a",function(){});

當然,我們也可以用bind進行事件繫結。我們看到上面的**,我們可以在事件後面,以點號,加我們的名字,就是事件命名空間。所謂事件命名空間,就是事件型別後面以點語法附加乙個別名,以便引用事件,如」click.a」,其中」a」就是click當前事件型別的別名,即事件命名空間。

假如我們要刪除如下命名空間:

$(「#haorooms」).on("click.a.bb",function(){});

我們可以用:

$(「#haorooms」).off("click.a.bb");//直接刪除bb命名空間 【推薦】$(「#haorooms」).off(".bb");//直接刪除bb命名空間 【推薦】$(「#haorooms」).off(".a");//刪除.a命名空間下面所有的子空間【包括.a.bb .a.cc等等,.a是.bb的父級,因此.a下面的都會刪掉】$(「#haorooms」).off("click");//直接解綁click,下面的命名空間都會刪除。

要注意的是:

假如我們寫了如下**:

$(「#haorooms」).on("click",function(){});$(「#haorooms」).on("click.a",function(){});$(「#haorooms」).on("click.a.bb",function(){});

那麼我們要用trigger觸發click事件,也就是觸發第乙個,豈不是把click.a和click.a.bb都觸發了,那如何解決這個問題呢,我只想觸發click,而不觸發click.a及以下的命名空間?

沒關係! 有如下解決辦法:

如果事件型別後面附加感嘆號,則表示觸發不包含命名空間的特定事件型別。

假如我們只想觸發click,可以這麼寫:

$(「#haorooms」).trigger("click!")

只觸發bb,可以這麼寫:

$(「#haorooms」).trigger("click.a.bb");

有了命名空間,可以方便我們在同乙個事件上面做管理啦!!!

jQuery中事件命名空間

常見的事件 id on click function 加上命名空間後 id on click.a function id on click.a.b function 注意,這種命名空間對jquery是不可見的。也就是說,當 id被click後,三個處理程式都會被觸發。id trigger click...

jQuery繫結事件命名空間

在jquery擴充套件外掛程式中遇到的問題 document bind keydown.dropselect function 事件的繫結 bind 和解綁 unbind 對於一般的繫結還是清楚如何使用,但是對存在命名空間情況還是很模糊,特此google一番,在網上存在問題解釋 color blue...

Jquery中神奇的事件命名空間

今天在專案中偶然發現了一種繫結及解綁事件的形式,由於專案中使用seajs非同步的按需載入功能,當使用置頂js時,由於需要在滾動到一定的位置時才會去載入乙個backtop.js,作為按需載入,這裡就會出現乙個問題,正常操作的話會繫結乙個scroll事件之後解綁再繫結一次,但是如果你解綁了scroll事...