jQuery绑定一次性事件和注销事件
綁定一次性事件
one()是on()的一個特例,用法與bind()完全相同,但是他綁定的事件在執行一次響應之后就會失效。用法如下:
one(event,[data],dunction)參數說明如下:
event:必須參數項,添加到元素的一個或多個事件,如click、dblclick等。
data:可選參數項,設計需要傳遞的參數。
function:必須參數項,當綁定事件發生時,需要執行的函數。
$(function(){$("ul>li").one("click",function(){alert($(this).text());}); })注銷事件
交互性事件的生命周期往往與頁面的生命周期是相同的,但是很多交互性事件只有在特定的時間或者條件下有效,超過了時效期,就應該把他注銷掉,以節省系統空間。
jQuery提供了四種事件的綁定方式(具體用法在上一博客已經介紹過,有興趣的小伙伴可以看一下我的上一篇博客):bind()、live()、delegate()、on(),對應的注銷事件方式為:unbind()、die()、undelegate()、off()。
注銷方法與注冊方法是相反的操作,參數和用法基本相同。他們能夠從每一個匹配的元素中刪除綁定的事件。如果沒有指定參數操作,則刪除所有的綁定事件,包括注冊的自定事件。
在下面的案例中,為p元素標簽綁定了dblclick、click、mouseover、mouseout四個事件,當觸發雙擊事件時,會注銷掉所有的事件,此時p元素之前的4個事件都將會被注銷。
$(function(){$("p").dblclick(function(){ //注冊雙擊事件$("p").off(); //注冊注銷所有事件});$("p").click(f); //注冊單擊事件$("p").mouseover(f); //注冊鼠標移過事件$("p").mouseout(f); //注冊鼠標移出事件function f(event){ //事件處理函數this.innerHTML= "事件類型 = " + event.type;} })在下面的代碼中,只會注銷p元素的mouseover事件,而其他類型的事件依然存在。
$("p").dblclick(function(){ //注冊雙擊事件$("p").off("mouseover");//注冊鼠標移過事件});?如果將在綁定時傳遞的處理函數作為第二個參數,則只有這個特定的事件處理函數會被刪除。
看下面的代碼,為p元素綁定了兩個處理函數不同的mouseover事件,但是第二次綁定的事件會覆蓋到之前所綁定的事件,因此當劃過該元素時,起內容會顯示為“第二個點擊事件”。當點擊該元素后,由于傳遞了注銷函數的第二個參數,因此只會注銷掉處理函數為e的mouseover事件。處理函數為f的mouseover事件依然存在
$(function(){$("p").click(function(){ //注冊單擊事件$("p").off("mouseover", e); //注銷鼠標經過事件中e()事件處理函數});$("p").mouseover(f); //注冊鼠標經過事件,綁定f()事件處理函數$("p").mouseover(e); //注冊鼠標經過事件,綁定e()事件處理函數function f(){$(this).text("第一個單擊事件")}function e(){$(this).text("第二個單擊事件")} })?
總結
以上是生活随笔為你收集整理的jQuery绑定一次性事件和注销事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 游戏制作教程
- 下一篇: 对 RNN 中 BPTT 求导过程的解析