jq事件注意点
接受數據參數--解決不同作用域下數據傳遞的問題
<div id="test">點擊觸發</div>
$('#test').click('001',function(e){
alert(e.data) //彈出001
});
mouseenter與mouseover(mouseout與mouseleave)的區別---關鍵是冒泡的方式處理問題
<div>
<p></p>
</div>
如果在div與p中都綁定mouseover,鼠標在離開p但沒離開div時,出現p與div都響應事件,因為先觸發p然后冒泡。
mouseenter事件只會在綁定它的元素上被調用,不會在后代節點上被觸發。。
foucus(blur)與foucusin(foucusout)的區別---是否支持冒泡處理
前者不冒泡,或者冒泡
hover方法
$(selector).hover(handlerIn, handlerOut)
- handlerIn(eventObject):當鼠標指針進入元素時觸發執行的事件函數
- handlerOut(eventObject):當鼠標指針離開元素時觸發執行的事件函數
$("p").hover(
function() {
$(this).css("background", 'red');
},
function() {
$(this).css("background", '#bbffaa');
}
);
on()的多事件綁定?on( events [, selector ] [, data ] )
多個事件綁定同一函數
$('*').on('mouseover mouseout',function(){});
多個事件綁定不同函數
$(*).on({
mouseover:function(){},
mouseout:function(){},
});
將數據傳遞到處理程序
$('*).on('click',{name:'my',age:'36'},function(e){
alert(e.data.name);
})
委托機制
.on(events,[,selector][,data],handler(eventObject))
如:
<div>
<p>
<a>目標節點</a>
</p>
</div>
$('div').on('click','p',fn)
事件綁定在最上層div元素上,當用戶觸發在a元素上,事件將往上冒泡,一直會冒泡在div元素上。如果提供了第二參數,那么事件在往上冒泡的過程中
遇到了選擇器匹配的元素,將會觸發事件回調函數。
事件委托
利用瀏覽器的冒泡特性,給父元素綁事件,用e.target判斷被觸發的元素,做相應的function。
(e:事件對象---是用來記錄一些事件發生時的相關信息的對象。只在事件發生時產生,只能是事件處理函數內部訪問,在所有事件處理函數運行結束后,
事件對象就被銷毀)。
jQuery事件屬性方法
e.type/pageX/pageY/preventDefault()/stopPropagation()/which/currentTarget(等同于this).
this與e.target的區別:
冒泡過程中this是可以變化的,但e.target永遠是直接接受事件的目標DOM元素
this與e.target都是dom對象,用jq需要轉換為$(this),$(e.target)
trigger事件--根據綁定到匹配元素的給定的事件類型執行所有的處理程序和行為
$('#elem').trigger('click') //不同點擊直接運行click時的fn。
trigger還支持自定義事件,支持傳遞參數
$('#elem').on('Aaron',function(e,arg1,arg2){
alert('自觸自定義事件')
});
$('#elem').trigger('Aaron',['參數1','參數2']);
trigger觸發瀏覽器事件與自定義事件的區別:
自定義事件對象,是jQuery模擬原生實現的
自定義事件可以傳遞參數
triggerHandler--觸發通過 jQuery 綁定的事件處理函數,而不觸發原生的事件
trigger與triggerHandler用法一樣,不同點:
- riggerHandler不會觸發瀏覽器的默認行為,.triggerHandler( "submit" )將不會調用表單上的.submit()
- .trigger() 會影響所有與 jQuery 對象相匹配的元素,而 .triggerHandler() 僅影響第一個匹配到的元素
- 使用 .triggerHandler() 觸發的事件,并不會在 DOM 樹中向上冒泡。 如果它們不是由目標元素直接觸發的,那么它就不會進行任何處理
- 與普通的方法返回 jQuery 對象(這樣就能夠使用鏈式用法)相反,.triggerHandler() 返回最后一個處理的事件的返回值。如果沒有觸發任何事件,會返回 undefined
轉載于:https://www.cnblogs.com/sao-di-seng/p/5488987.html
總結
- 上一篇: 6.NFC之非NDEF格式
- 下一篇: 网页设计界面 电脑版设计