jQuery 綁定事件總結

來源:互聯網
上載者:User

標籤:函數名   利用   事件監聽   ...   函數   事件處理   line   round   live   

 

目前已知有:

$("..").bind("事件名",fn);

$("parent").on("事件名","selector",fn);

 $("..").one("事件名",fn);

DOM:addEvenetlistener("事件名",fn);

removeEvenetListener("事件名",函數名);

強調:要想移除事件監聽,必須使用有名函數
綁定事件監聽,如果添加事件時使用匿名函數
則不可能移除.

 

$("select").live("事件名",fn); 

$(document).delegate("select","事件",fn);

$("selector").die("事件名");

其中 後三種 live、delegate、die,由於其本身的效能問題,已廢棄,不再討論,盡討論前三種:

 

1:bind

  bind通常都是是每個子項目都添加事件監聽,且僅對現有元素添加綁定,無法自動給動態產生元素添加綁定

a:

$("...").bind("事件名",fn);

$("...").bind("事件名1 事件名2 ",fn);

b:事件對象
$("..").bind("事件名",function(e){

e==事件對象

e.preventDefault();

}); 

$("..").unbind("事件名",函數名); 解除綁定

$("..").unbind(); 移動該元素上所有事件綁定

2:on

on() 為指定的元素,添加一個或多個事件處理常式,並規定當這些事件發生時啟動並執行函數。使用 on() 方法的事件處理程式適用於當前或未來的元素(比如由指令碼建立的新元素)。

off()函數主要用於解除由on()函數綁定的事件處理函數。

3:one

$("..").one("事件名",fn);綁定事件,僅觸發一次後自動觸綁定,只能對當前頁面上己存在的元素添加事件綁定.動態產生元素無法自動綁定事件.

 

實現動態綁定的方法:

 

解決1:利用冒泡,將事件綁定己存在父元素一次

function(e){var target = e.target;//target 觸發事件:元素}

 


解決2:事件代理

$("parent").delegate("subselector","事件名",fn);

fn-->this--->代替 e.target

解除

$("parent").undelegate("subselector","事件名");

 

jQuery 綁定事件總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.