-
jQuery鼠標事件:
click與dbclick事件://ele代表元素,handler代表回調(diào)方法
1)click方法一:$ele.click()
綁定$ele元素,不帶任何參數(shù)一般是用來指定觸發(fā)一個事件,用的比較少
<div id="test">點擊觸發(fā)<div>
$("ele").click(function(){
? ? alert('觸發(fā)指定事件');
})
$("#test").click(function(){
? ? ?$("ele").click();? //手動指定觸發(fā)事件?
});
2)click方法二:$ele.click( handler(eventObject) )
綁定$ele元素,每次$ele元素觸發(fā)點擊操作會執(zhí)行回調(diào) handler函數(shù),這樣可以針對事件的反饋做很多操作了,方法中的this是指向了綁定事件的元素
<div id="test">點擊觸發(fā)<div>
$("#test").click(function() {
? ? //this指向 div元素
});
3)click方法三:$ele.click( [eventData ], handler(eventObject) )
使用與方法二一致,不過可以接受一個數(shù)據(jù)參數(shù),這樣的處理是為了解決不同作用域下數(shù)據(jù)傳遞的問題
<div id="test">點擊觸發(fā)<div>
$("#test").click("提示信息",function(e) {
? ? //this指向 div元素
? ? //e.data? => 提示信息 -> 傳遞數(shù)據(jù)
});
click事件觸發(fā)需要以下幾點:
1)click事件其實是由mousedown與mouseup 2個動作構(gòu)成
2)點擊的動作只有在松手后才觸發(fā)
dblclick事件觸發(fā)需要以下幾點:
1)dblclick又是由2個click疊加而來的
2)鼠標指針在元素里面時點擊。
3)鼠標指針在元素里面時釋放。
4)鼠標指針在元素里面時再次點擊,點擊間隔時間,是系統(tǒng)而定。
5)鼠標指針在元素里面時再次釋放。
注意:在同一元素上同時綁定 click 和 dblclick 事件是不可取的。各個瀏覽器事件觸發(fā)的順序是不同的,一些瀏覽器在dblclick之前接受兩個 click 事件 ,而一些瀏覽器只接受一個 click 事件。用戶往往可通過不同的操作系統(tǒng)和瀏覽器配置雙擊靈敏度
mousedown與mouseup事件:
1)方法一:$ele.mousedown()
2)方法二:$ele.mousedown( handler(eventObject) )
3)方法三:$ele.mousedown( [eventData ], handler(eventObject) )
mousedown事件觸發(fā)需要以下幾點:
1)mousedown強調(diào)是按下觸發(fā)
2)如果在一個元素按住了鼠標不放,并且拖動鼠標離開這個元素,并釋放鼠標鍵,這仍然是算作mousedown事件
3)任何鼠標按鈕被按下時都能觸發(fā)mousedown事件
4)用event 對象的which區(qū)別按鍵,敲擊鼠標左鍵which的值是1,敲擊鼠標中鍵which的值是2,敲擊鼠標右鍵which的值是3
mouseup事件觸發(fā)需要以下幾點:
1)mouseup強調(diào)是松手觸發(fā),與mousedown是相反的
2)mouseup與mousedown組合起來就是click事件
3)如果用戶在一個元素上按下鼠標按鍵,并且拖動鼠標離開這個元素,然后釋放鼠標鍵,這仍然是算作mouseup事件
4)任何鼠標按鈕松手時都能觸發(fā)mouseup事件
5)用event 對象的which區(qū)別按鍵,敲擊鼠標左鍵which的值是1,敲擊鼠標中鍵which的值是2,敲擊鼠標右鍵which的值是3
click與mousedown的區(qū)別:
click事件其實是由mousedown于mouseup 2個動作構(gòu)成,所以點擊的動作只有在松手后才觸發(fā)
mousemove事件:
1)方法一:$ele.mousemove()
2)方法二:$ele.mousemove( handler(eventObject) )
3)方法三:$ele.mousemove( [eventData ], handler(eventObject) )
mousemove事件觸發(fā)需要以下幾點:
1)mousemove事件是當鼠標指針移動時觸發(fā)的,即使是一個像素
2)如果處理器做任何重大的處理,或者如果該事件存在多個處理函數(shù),這可能造成瀏覽器的嚴重的性能問題
mouseover(移入)與mouseout(移出)事件://mouseover 事件要考慮到事件冒泡,也就是父級元素也有綁定mouseover事件的話,那么事件觸發(fā)的同時也會觸發(fā)父級元素的事件
1)方法一:$ele.mouseover()
2)方法二:$ele.mouseover( handler(eventObject) )
3)方法三:$ele.mouseover( [eventData ], handler(eventObject) )
mouseenter與mouseleave事件://mouseenter 事件不需要考慮到事件冒泡
1)方法一:$ele.mouseenter()
2)方法二:$ele.mouseenter( handler(eventObject) )
3)方法三:$ele.mouseenter( [eventData ], handler(eventObject) )
hover事件://selector代表選擇器
$(selector).hover(handlerIn, handlerOut)
1)handlerIn(eventObject):當鼠標指針進入元素時觸發(fā)執(zhí)行的事件函數(shù)
2)handlerOut(eventObject):當鼠標指針離開元素時觸發(fā)執(zhí)行的事件函數(shù)
focusin和focusout事件://元素獲得焦點和元素失去焦點
1)方法一:$ele.focusin()
2)方法二:$ele.focusin( handler(eventObject) )
3)方法三:$ele.focusin( [eventData ], handler(eventObject) )
查看全部 -
trigger事件還有一個特性:會在DOM樹上冒泡,所以如果要阻止冒泡就需要在事件處理程序中返回false或調(diào)用事件對象中的.stopPropagation() 方法可以使事件停止冒泡。
triggerHandler與trigger的用法是一樣的,重點看不同之處:
triggerHandler不會觸發(fā)瀏覽器的默認行為,.triggerHandler( "submit" )將不會調(diào)用表單上的.submit()
.trigger() 會影響所有與 jQuery 對象相匹配的元素,而 .triggerHandler() 僅影響第一個匹配到的元素
使用 .triggerHandler() 觸發(fā)的事件,并不會在 DOM 樹中向上冒泡。 如果它們不是由目標元素直接觸發(fā)的,那么它就不會進行任何處理
與普通的方法返回 jQuery 對象(這樣就能夠使用鏈式用法)相反,.triggerHandler() 返回最后一個處理的事件的返回值。如果沒有觸發(fā)任何事件,會返回 undefined
查看全部 -
trigger觸發(fā)瀏覽器事件與自定義事件區(qū)別?
自定義事件對象,是jQuery模擬原生實現(xiàn)的
自定義事件可以傳遞參數(shù)
查看全部 -
眾所周知類似于mousedown、click、keydown等等這類型的事件都是瀏覽器提供的,通俗叫原生事件,這類型的事件是需要有交互行為才能被觸發(fā)。
查看全部 -
event.type:獲取事件的類型
event.pageX 和 event.pageY:獲取鼠標當前相對于頁面的坐標
event.preventDefault() 方法:阻止默認行為
我們可以用 event.isDefaultPrevented() 來確定這個方法是否(在那個事件對象上)被調(diào)用過了
event.stopPropagation() 方法:阻止事件冒泡
event.which:獲取在鼠標單擊時,單擊的是鼠標的哪個鍵
event.currentTarget : 在事件冒泡過程中的當前DOM元素
this和event.target的區(qū)別:
.this和event.target都是dom對象
查看全部 -
event.target代表當前觸發(fā)事件的元素,可以通過當前元素對象的一系列屬性來判斷是不是我們想要的元素
查看全部 -
根據(jù)on綁定事件的一些特性,off方法也可以通過相應(yīng)的傳遞組合的事件名,名字空間,選擇器或處理函數(shù)來移除綁定在元素上指定的事件處理函數(shù)。當有多個過濾參數(shù)時,只有與這些參數(shù)完全匹配的事件處理函數(shù)才會被移除
查看全部 -
keypress事件與keydown和keyup的主要區(qū)別
只能捕獲單個字符,不能捕獲組合鍵
無法響應(yīng)系統(tǒng)功能鍵(如delete,backspace)
不區(qū)分小鍵盤和主鍵盤的數(shù)字字符
查看全部 -
eydown事件觸發(fā)在文字還沒敲進文本框,這時如果在keydown事件中輸出文本框中的文本,得到的是觸發(fā)鍵盤事件前的文本,而keyup事件觸發(fā)時整個鍵盤事件的操作已經(jīng)完成,獲得的是觸發(fā)鍵盤事件后的文本
當瀏覽器捕獲鍵盤輸入時,還提供了一個keypress的響應(yīng),這個跟keydown是非常相似,這里使用請參考keydown這一節(jié),具體說說不同點
keypress事件與keydown和keyup的主要區(qū)別
只能捕獲單個字符,不能捕獲組合鍵
無法響應(yīng)系統(tǒng)功能鍵(如delete,backspace)
不區(qū)分小鍵盤和主鍵盤的數(shù)字字符
總而言之,
KeyPress主要用來接收字母、數(shù)字等ANSI字符,而 KeyDown 和 KeyUP 事件過程可以處理任何不被 KeyPress 識別的擊鍵。諸如:功能鍵(F1-F12)、編輯鍵、定位鍵以及任何這些鍵和鍵盤換檔鍵的組合等。
查看全部 -
當?textarea?或文本類型的?input?元素中的文本被選擇時,會發(fā)生?select?事件。 這個函數(shù)會調(diào)用執(zhí)行綁定到select事件的所有函數(shù),包括瀏覽器的默認行為??梢酝ㄟ^在某個綁定的函數(shù)中返回false來防止觸發(fā)瀏覽器的默認行為。 select事件只能用于<input>元素與<textarea>元素
查看全部 -
<input>元素,<textarea>和<select>元素的值都是可以發(fā)生改變的,開發(fā)者可以通過change事件去監(jiān)聽這些改變的動作
查看全部 -
當一個元素,或者其內(nèi)部任何一個元素獲得焦點的時候,例如:input元素,用戶在點擊聚焦的時候,如果開發(fā)者需要捕獲這個動作的時候,jQuery提供了一個focusin事件
查看全部 -
只需要在hover方法中傳遞2個回調(diào)函數(shù)就可以了,不需要顯示的綁定2個事件
$(selector).hover(handlerIn,?handlerOut)
handlerIn(eventObject):當鼠標指針進入元素時觸發(fā)執(zhí)行的事件函數(shù)
handlerOut(eventObject):當鼠標指針離開元素時觸發(fā)執(zhí)行的事件函數(shù)
查看全部 -
mouseenter事件只會在綁定它的元素上被調(diào)用,而不會在后代節(jié)點上被觸發(fā)
查看全部 -
用交互操作中,經(jīng)常需要知道用戶是否有移動的操作。基于移動的機制可以做出拖動、拖拽一系列的效果出來。針對移動事件,jQuery提供了一個mousemove的快捷方法可以監(jiān)聽用戶移動的的操作
mousemove事件觸發(fā)需要以下幾點:
mousemove事件是當鼠標指針移動時觸發(fā)的,即使是一個像素
如果處理器做任何重大的處理,或者如果該事件存在多個處理函數(shù),這可能造成瀏覽器的嚴重的性能問題
查看全部
舉報