麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

jquery 事件對象屬性小結

2019-11-17 01:26:05
字體:
來源:轉載
供稿:網友

jquery 事件對象屬性小結

使用事件自然少不了事件對象. 因為不同瀏覽器之間事件對象的獲取, 以及事件對象的屬性都有差異, 導致我們很難跨瀏覽器使用事件對象.

jQuery中統一了事件對象, 當綁定事件處理函數時, 會將jQuery格式化后的事件對象作為唯一參數傳入:

$("#testDiv").bind("click", function(event) { });

關于event對象的詳細說明, 可以參考jQuery官方文檔:http://docs.jquery.com/Events/jQuery.Event

jQuery事件對象將不同瀏覽器的差異進行了合并, 比如可以在所有瀏覽器中通過 event.target 屬性來獲取事件的觸發者(在IE中使用原生的事件對象, 需要訪問event.srcElement).下面是jQuery事件對象可以在擴瀏覽器支持的屬性:

屬性名稱描述舉例
type事件類型.如果使用一個事件處理函數來處理多個事件, 可以使用此屬性獲得事件類型,比如click.
$("a").click(function(event) { alert(event.type); });
target獲取事件觸發者DOM對象
$("a[href=http://google.com]").click(function(event) { alert(event.target.href); });
data事件調用時傳入額外參數.
$("a").each(function(i) { $(this).bind('click', {index:i}, function(e){ alert('my index is ' + e.data.index); }); });
relatedTarget對于鼠標事件, 標示觸發事件時離開或者進入的DOM元素
$("a").mouSEOut(function(event) { alert(event.relatedTarget); });
currentTarget冒泡前的當前觸發事件的DOM對象, 等同于this.
$("p").click(function(event) { alert( event.currentTarget.nodeName ); });

結果:P

pageX/Y鼠標事件中, 事件相對于頁面原點的水平/垂直坐標.
$("a").click(function(event) { alert("Current mouse position: " + event.pageX + ", " + event.pageY ); });
result上一個事件處理函數返回的值
$("p").click(function(event) { return "hey" }); $("p").click(function(event) { alert( event.result ); });

結果:”hey”

timeStamp事件發生時的時間戳.
var last; $("p").click(function(event) { if( last ) alert( "time since last event " + event.timeStamp - last ); last = event.timeStamp; });

上面是jQuery官方文檔中提供的event對象的屬性. 在”jQuery實戰”一書中還提供了下面的多瀏覽器支持的屬性, 時間關系我沒有嘗試每一個屬性, 大家可以幫忙驗證是否在所有瀏覽器下可用:

屬性名稱描述
altKeyAlt鍵是否被按下. 按下返回true
ctrlKeyctrl鍵是否被按下, 按下返回true
metaKeyMeta鍵是否被按下, 按下返回true.meta鍵就是PC機器的Ctrl鍵,或者Mac機器上面的Command鍵
shiftKeyShift鍵是否被按下, 按下返回true
keyCode對于keyup和keydown事件返回被按下的鍵. 不區分大小寫, a和A都返回65.對于keyPRess事件請使用which屬性, 因為which屬性跨瀏覽時依然可靠.
which對于鍵盤事件, 返回觸發事件的鍵的數字編碼. 對于鼠標事件, 返回鼠標按鍵號(1左,2中,3右).
screenX/Y對于鼠標事件, 獲取事件相對于屏幕原點的水平/垂直坐標

事件對象除了擁有屬性, 還擁有事件. 有一些是一定會用到的事件比如取消冒泡 stopPropagation() 等.下面是jQuery事件對象的函數列表:

名稱說明舉例
preventDefault()取消可能引起任何語意操作的事件. 比如<a>元素的href鏈接加載, 表單提交以及click引起復選框的狀態切換.
$("a").click(function(event){ event.preventDefault(); // do something });
isDefaultPrevented()是否調用過

preventDefault()

方法

$("a").click(function(event){ alert( event.isDefaultPrevented() ); event.preventDefault(); alert( event.isDefaultPrevented() ); });
stopPropagation()取消事件冒泡
$("p").click(function(event){ event.stopPropagation(); // do something });
isPropagationStopped()是否調用過

stopPropagation()

方法

$("p").click(function(event){ alert( event.isPropagationStopped() ); event.stopPropagation(); alert( event.isPropagationStopped() ); });
stopImmediatePropagation()取消執行其他的事件處理函數并取消事件冒泡.如果同一個事件綁定了多個事件處理函數, 在其中一個事件處理函數中調用此方法后將不會繼續調用其他的事件處理函數.
$("p").click(function(event){ event.stopImmediatePropagation(); }); $("p").click(function(event){ // This function won't be executed });
isImmediatePropagationStopped()是否調用過

stopImmediatePropagation()

方法

$("p").click(function(event){ alert( event.isImmediatePropagationStopped() ); event.stopImmediatePropagation(); alert( event.isImmediatePropagationStopped() ); });

這些函數中 stopPropagation() 是我們最長用的也是一定會用到的函數. 相當于操作原始event對象的event.cancelBubble=true來取消冒泡。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久免费视频精品 | 成人男女啪啪免费观看网站四虎 | av成人免费观看 | 久久久久久中文字幕 | 国产精品久久久久久影视 | 视频国产一区二区 | xxxxxx打针视频vk | 激情在线免费观看 | 欧美一级黄色录相 | 黄色片免费在线播放 | 日韩中文字幕一区二区三区 | av手机在线电影 | 欧美黄色一级片视频 | sm高h视频 | 全黄裸片武则天一级第4季 九色p | 99精品视频在线 | 性欧美视频在线观看 | 日本成年免费网站 | 国产精品一区二区三区在线播放 | 亚洲性综合网 | 久久久久久久久久久国产精品 | 欧美大胆xxxx肉体摄影 | 精品国产一区二区三区四 | 欧美成网 | 一色视频| 久久精品电影网 | 午夜精品网站 | 日韩视频一区二区在线观看 | 欧美巨乳在线观看 | 欧美精品在线免费观看 | 国产99视频在线观看 | 大学生一级毛片在线视频 | 精品爱爱 | 美女黄网站免费观看 | 中文字幕一区2区 | 欧美一级片在线 | 香蕉久久久 | 国产成人午夜精品 | 国产毛片aaa一区二区三区视频 | 在线中文字幕网站 | 一级毛片在线看 |