jquery事件委託方法有:1、blind()方法,主要用於給選擇到的元素進行事件綁定;2、live()方法,為目前或未來的匹配元素添加一個或多個事件處理器;3、delegate()方法;4、on()方法,用於將監聽事件綁定到就近父級元素。
本教學操作環境:windows7系統、jquery1.10.2版本、Dell G3電腦。
什麼是事件委託?
子元素的事件委託給父元素,而不是分給子元素自己去綁定事件,然後觸發事件的時候找到對應的event.target
是指利用事件冒泡,只指定一個事件處理程序,來管理某一類型的所有事件
為什麼要用事件委託?
因為在js中加入到頁面的事件處理程序數量會影響到頁面的整體運行性能
其次對列表逐個添加事件處理程序太過於麻煩,所以,事件委託大大提高了頁面運行的效能
透過for循環給ul底下的li遍歷綁定事件,看似沒有問題但實際上非常影響頁面的運行性能
此時,就用到冒泡模式的事件委託來解決
然而,有會想到綁定給ul的事件,實現後豈不是每個li都會受影響嗎?
出此案了新概念:事件來源:不管事件綁定在那元素中,都指的是實際觸發事件的內個目標
event.target
eg:ul.onclick=function(event){}
簡單點是 減少DOM訪問,減少內存,提高頁面的運行性能
jquery事件委託方法有哪些
1、blind
#定義和用法:主要用於給選擇到的元素進行事件綁定
語法:
blind("事件类型",data,function(){ }); //data是传入函数的参数用event.data获取(平时用的.click()等都是其简化用法)
特點;適用於靜態頁面,只能給呼叫它時已存在的元素綁定,不能給未來新增的元素綁定
當頁面載入完時,才進行blind;
2、live(1.7以後不支援)
定義:在目前或未來的符合元素中新增一個或多個事件處理器;
語法:
live("事件类型",data, 函数名);//data可选
特點:live並沒有將事件綁定到自身(this)上,而是綁定到this.context上
正是利用了事件委託機製完成事件的監聽處理,把節點的處理委託給document
新加入的元素不必再綁定一次監聽器,可多事件處理
只能放在直接選擇的元素的後面
3、delegate
定義:將監聽事件綁定到就近父級元素,因為事件可以更快的冒泡上去
語法:
delegate(selector,type,[data],fn)
特點:更精確的小範圍使用事件代理,效能優於.live()。可以用在動態新增的元素上。
("父级选择器").delegate(".a","click",function())//表示:.a的事件通过父级元素进行委托,(this)获取的是触发事件的子元素
4、on
定義;將監聽事件綁定到就近父級元素
語法:
on(type, 选择器,方法)
特點:給父元素底下新加入的標籤也可以用監聽事件
也支援多時事件處理
#【推薦學習:jQuery影片教學、web前端影片】
以上是jquery事件委託方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!