国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

JQuery學習筆記整理:事件處理

2018-06-19 16:03 更新

      本章的主題是jQuery事件處理,如果你對事件處理不了解,可以看這篇文章《JavaScript學習筆記整理(10):Event事件》。


目錄
1、事件處理
2、事件方法
2.1 document對象事件
2.2 瀏覽器事件方法
2.3 鼠標事件方法
2.4 表單事件方法
2.5 鍵盤事件方法
3、jQuery Event對象的屬性和方法

1、事件處理
(1)事件處理

bind(eventType,function)、bind(eventType,data,function)  為jQuery對象內(nèi)每一個匹配元素添加一個事件處理函數(shù),支持可選的data參數(shù)。

bind(eventType,boolean)

bind(map)

one(eventType,funciton)、one(eventType,data,function)

unbind()、unbind(eventType)、unbind(eventType,boolean)

unbind(Event)


bind()為jQuery對象內(nèi)每一個匹配元素添加一個事件處理函數(shù),支持可選的data參數(shù)。

$('.box').bind('click',function(event){})

所有事件處理函數(shù)內(nèi)的this變量,正常情況下是指向當前DOM元素,它還會給函數(shù)傳入一個參數(shù),表示當前事件的Event對象。

綁定多個事件:

$('.box').bind('click mousedown',funciton(){});

每個事件名稱用空格隔開。

還使用映射對象(鍵值對形式)在一次bind方法調(diào)用中為多個事件綁定處理函數(shù)。

var handle = {

  mousedown: function(){},

  mouseup: function(){}

};

$('.box').bind(handle);


bind()方法還可以使用data(任意類型)傳入數(shù)據(jù)

var obj = {name:'tg'};

$('.box').bind('click',obj,funciton(event){

  console.log(event.data.name);  // "tg"

});

在事件處理函數(shù)內(nèi),event.data就是bind()傳入的data數(shù)據(jù)。

如果最后傳入一個boolean參數(shù),它用于指示是否允許元素的默認行為和事件冒泡。如果該值為false,它將阻止元素的默認行為(例如:觸發(fā)click事件的鏈接的默認跳轉(zhuǎn)行為,觸發(fā)submit事件的表單的默認提交行為)和事件的冒泡傳遞。

注意:bind()方法只會給當前文檔中已經(jīng)存在的匹配元素添加事件處理函數(shù),如果后續(xù)動態(tài)添加元素,添加元素并不會綁定該事件處理函數(shù),如希望綁定事件對后續(xù)添加的元素生效,可使用on()、delegate()等事件函數(shù)(優(yōu)先使用on,下面會講到)。

我們可以使用unbind()方法來撤銷之前綁定在元素上的事件處理函數(shù)。如果不提供任何參數(shù)調(diào)用unbind()方法,則表示撤銷所有之前綁定在jQuery對象中所有匹配元素上的事件處理函數(shù)。

$('.box').unbind('mousedown');


$('.box').bind('click',function(event){

  $(this).unbind(event);

})

如果像第二種方式傳入Event對象,jQuery會自動分析Event對象,撤銷正確的事件處理函數(shù)。

one()方法和bind()方法的用法一樣,不過前者是用來綁定至多執(zhí)行一次的事件處理函數(shù)。

$('.box').one('click',function(){   

  alert(1);   

});

在上面的代碼中,給div.box綁定了一個點擊的事件處理函數(shù),當你第一次點擊時,會彈出1的彈窗,可是第二次再點擊時,就不會再響應,什么都沒發(fā)生。

(2)動態(tài)綁定事件處理函數(shù)

on(events,selector,data,function)、on(map,selector,data)  為匹配元素綁定事件處理函數(shù)

off(events,selector,function)、off(map,selector)  撤銷使用on方法綁定的事件處理函數(shù)

delegate(selector,eventType,function)、delegate(selector,eventType,data,function)、delegate(selector,map)  使用selector過濾jQuery對象內(nèi)所有匹配元素,然后綁定事件處理函數(shù)

undelegate()、undelegate(selector,eventType)  撤銷使用delegate方法綁定且匹配選擇器與事件類型的事件處理函數(shù)

on()方法也是用來為指定元素的一個或多個事件綁定事件處理函數(shù)。

從1.7版本開始,可使用on()方法統(tǒng)一取代之前的bind()、delegate()、live()等事件函數(shù)了,推薦使用on()方法。

$('.box').on('click',function(event){});

$('.box').on('click mousedown',function(){});

$('.box').on('click',{color:'red'},function(event){});

$('.box').on('click','p',function(){});  // 為div.box中的所有p元素綁定click事件處理函數(shù)


為新添加的元素添加事件
bind()方法只會為頁面已存在的元素綁定事件處理函數(shù),可是on()不同,它不僅支持直接在目標元素上綁定事件,還支持在目標元素的父輩元素上委托綁定。

<div class="box">

 <p>123</p><p>34</p>

</div>


$('.box').on('click','p',function(){ alert(1); });


$('.box').append('<p>新添加</p>');

在上面的代碼執(zhí)行后,你會發(fā)現(xiàn)click事件處理函數(shù)不僅對div.box中原有的兩個p有效,對后來append進去的p一樣會響應click事件處理函數(shù)。

off()方法用來撤銷使用on方法綁定的事件處理函數(shù)。

(3)手動調(diào)用事件處理函數(shù)

trigger(eventType)  觸發(fā)綁定在jQuery對象內(nèi)匹配元素的特定事件類型(由eventType決定)上的事件處理函數(shù)。

trigger(Event)   觸發(fā)綁定在jQuery對象內(nèi)匹配元素的特定事件(由Event事件決定)上的事件處理函數(shù)。

triggerHandler(eventType)  觸發(fā)綁定在jQuery對象內(nèi)第一個匹配元素上的事件處理函數(shù),既不冒泡,也不實施事件的默認行為。

模擬點擊

<div class="box">123</div>

<button>模擬點擊</button>


$('.box').on('click',function(){

  alert(1);

});

$('button').on('click',function(){

  $('.box').trigger('click');

});


2、事件方法

jQuery提供了很多常用事件綁定事件處理函數(shù)。


2.1 document對象事件方法

load(function)  即load事件,在頁面中的子元素及資源文件載入完成時觸發(fā)

ready(function)  在頁面中的元素已經(jīng)處理完成,DOM就緒時觸發(fā)

unload(function)  即unload事件,當用戶離開當前頁面時觸發(fā)


2.2 瀏覽器事件方法

error(function)  即error事件,在載入外部資源文件出錯時觸發(fā)(如載入圖片出錯)

resize(function) 即resize事件,當瀏覽器窗口大小發(fā)生變化時觸發(fā)

scroll(function) 即scroll事件,當用戶拖動滾動條時觸發(fā)


2.3 鼠標事件方法

click(function)  即click事件,在用戶點擊鼠標按鈕時觸發(fā)

dblclick(function)  即dblclick事件,在用戶雙擊鼠標按鈕時觸發(fā)

focusin(function)  即focusin事件,在元素得到焦點時觸發(fā)

focusout(function) 即focusout事件,在元素失去焦點時觸發(fā)

hover(function)、hover(function,function)  即hover事件,在鼠標進入或離開元素時觸發(fā),若指定兩個參數(shù),進入時會觸發(fā)第一個函數(shù),離開時會觸發(fā)第二個函數(shù),否則都會觸發(fā)第一個。

mousedown(function)  即mousedown事件,當在某元素上按下鼠標時觸發(fā)

mouseenter(function) 即mouseenter事件,當鼠標進入某元素顯示區(qū)域時觸發(fā)

mouseleave(function) 即mouseleave事件,當鼠標離開某元素顯示區(qū)域時觸發(fā)

mousemove(function)  即mousemove事件,當鼠標在某元素顯示區(qū)域內(nèi)移動時觸發(fā)

mouseout(function)   即mouseout事件,當鼠標離開某元素顯示區(qū)域時觸發(fā)

mouseover(function)  即mouseover事件,當鼠標進入某元素顯示區(qū)域時觸發(fā)

mouseup(function)    即mouseup事件,當按下后釋放鼠標按鈕時觸發(fā)


mouseenter()與mouseover()、mouseleave() 與mouseup()的區(qū)別?

mouseenter()和mouseover()作用一樣,但前者不支持冒泡,后者支持。

mouseleave()和mouseup()作用一樣,但前者不支持冒泡,后者支持。


2.4 表單事件方法

blur(function)  即blur事件,在元素失去焦點時觸發(fā)

change(function)  即change事件,在元素的值發(fā)生變化時觸發(fā)

focus(function)  即focus事件,在元素獲得焦點時觸發(fā)

select(function)  即select事件,在用戶選中某個可選框時觸發(fā)

submit(function)  即submit事件,當用戶提交表單時觸發(fā)


2.5 鍵盤事件方法

keydown(function)  即keydown事件,當用戶按下一個鍵后觸發(fā)

keypress(function)  即keypress事件,當用戶按下一個鍵并釋放后觸發(fā)

keyup(function)  即keyup事件,當用戶釋放一個鍵時觸發(fā)

keypress事件會在按下鍵盤按鍵時觸發(fā)。它與keydown事件類似,但keypress著重的是按下該鍵輸入了哪個字符(只有能夠打印字符的鍵才會觸發(fā)keypress),keydown著重的是按下了哪個鍵(按下任何鍵都可觸發(fā)keydown)。對于諸如Ctrl、Alt、Shift、Delete、Esc等修飾性和非打印鍵,請監(jiān)聽keydown事件。


3、jQuery Event對象的屬性和方法

Event對象主要英語獲取事件的相關(guān)信息。

currentTarget   返回正在處理(響應)該事件的元素

data   返回綁定事件時傳遞的data對象

isDefaultPrevented()   若已經(jīng)調(diào)用過preventDefault()方法,返回true

isImmediatePropagationStopped()  若已經(jīng)調(diào)用過stopImmediatePropation()方法,返回true

originalEvent   返回未經(jīng)jQuery處理的原始DOM Event對象

pageX、pageY   返回相對于頁面左上角的鼠標位置

preventDefault()  用來阻止當前事件的默認行為

relatedTarget  僅對鼠標事件有效,返回該鼠標事件有關(guān)的元素

result   返回處理該事件的最后一個事件處理函數(shù)的返回值

stopImmediatePropagation()  立即阻止調(diào)用當前事件的其他事件處理函數(shù)

stopPropagation()  阻止事件冒泡

target  返回觸發(fā)事件的元素

timeStamp  返回事件發(fā)生的時間

type  返回事件類型

which  在鍵盤和鼠標事件中,返回用戶按下的鍵或鼠標按鈕


了解原生的JavaScript事件對理解jQuery事件很有幫助,可以看這篇文章《JavaScript學習筆記整理(10):Event事件》。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號