亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

JS和JQ的event對象區別分析

2024-05-06 16:10:58
字體:
來源:轉載
供稿:網友
js和jq的event對象大同小異,本文簡單對比下它們的'click'事件下的不同和應用,給有需要的小伙伴參考下
 
 

代碼測試:

 

復制代碼代碼如下:

<div id="test"><p>test text<p></div> 
<script src="vendor/jquery-2.1.1.js"></script> 
<script> 
test.addEventListener('click', function(e){console.log(e);}, false), 
$('#test').on('click', function(e){console.log(e)}); 
</script>

 

結果分析:

 

復制代碼代碼如下:

js-jq-event-common:{ 
  altKey: false, 
  bubbles: true, 
  button: 0, 
  cancelable: true, 
  clientX: 58, 
  clientY: 13, 
  ctrlKey: false, 
  offsetX: 50, 
  offsetY: 5, 
  pageX: 58, 
  pageY: 13, 
  screenX: 58, 
  screenY: 122, 
  view: Window, 
  which: 1, 
  type: 'click', 
  timeStamp: 1407761742842, 
  metaKey: false, 
  relatedTarget: null, 
  target: div#test /*jq-evt的target不一定是jQuery選擇器匹配的元素,可能是第一個捕獲事件的元素,然后向上冒泡時其中一個才是選擇器匹配的元素*/
}, 
 js-jq-event-diff:{ 
  currentTarget: null/*貌似一般都為null*/
              || div#test/*jq選擇器匹配的元素在[currentTarget]屬性*/, 
  eventPhase: 0 || 2, 
  toElement: div#test 
}, 
 js-event-solo:{ 
  x: 58, 
  y: 13, 
  cancelBubble: false, 
  charCode: 0, 
  clipboardData: undefined, 
  dataTransfer: null, 
  defaultPrevented: false, 
  srcElement: div#test, 
  fromElement: null, 
  detail: 1, 
  keyCode: 0, 
  layerX: 58, 
  layerY: 13, 
  returnValue: true
}, 
 jq-event-solo: { 
  buttons: undefined, 
  data: undefined, 
  delegateTarget: div#test/*誰在監聽?就是這個元素啦。*/, 
  isDefaultPrevented: function, 
  handleObj: Object, 
  jQuery211024030584539286792: true, 
  originalEvent: MouseEvent, 
  shiftKey: false

 body-click-delegate-event: { 
  currentTarget: HTMLBodyElement, 
  delegateTarget: HTMLBodyElement, 
  target: HTMLDivElement 
}

 

總結:

js的event參數中,不管是target, toElement, srcElement都是指向第一個觸發事件的元素(還沒冒泡),而fromElement在click事件中為null,所以,你如果是設置包含很多元素的父容器parent事件,那么觸發事件的很可能是這個parent的子元素。 
因此,在實際應用中,如果要引用parent,那你只能使用this了 
jq的event參數中, 
currentTarget是匹配你選擇器的元素,就是你的所要元素; 
delegateTarget是在監聽事件的元素,屬于被委托的元素 
target同js的event參數里的target,是第一個觸發事件的元素,沒currentTarget有用(也不一定,比如在bodyclick事件中的應用) 
有同學可能說,你要直接引用被設備事件的元素用this就得啦,何必理解currentTarget和target呢。這個想法證明你還只是用下jQuery而已,沒用過類似Backbone之類的工具。

Backbone很多地方綁定了this,所以在它的函數中用this是不行的:

 

復制代碼代碼如下:

var view = Backbone.View.extend({ 
  el: document.body, 
   events: { 
    'click p': 'showText'     // 委托body監聽p的click事件   }, 
   showText: function(e){ 
    var p = e.currentTarget;  // [currentTarget]獲取選擇器匹配的元素     this.log(p.innerHTML);    // 看到了吧,this并不指向p元素   }, 
   log: function(msg){ 
    console.log(msg); 
  } 
});

 

雖然JS,JQ中event對象大同小異,但還是有些許區別的,大家是否了解了呢


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人全部免费| 亚洲美女喷白浆| 亚洲精品在线不卡| 国产噜噜噜噜久久久久久久久| 亚洲无av在线中文字幕| 精品福利一区二区| 日韩av在线不卡| 亚洲社区在线观看| 性欧美xxxx视频在线观看| 亚洲sss综合天堂久久| 欧美性jizz18性欧美| 久久免费视频这里只有精品| 国产精品成人av在线| 成人性生交大片免费看小说| 国产精品久久久久久久久久三级| 日韩毛片在线观看| 成人激情视频在线观看| 大伊人狠狠躁夜夜躁av一区| 国产99久久精品一区二区永久免费| 久久精品人人做人人爽| 亚洲国产精品va在线看黑人动漫| 91免费欧美精品| 亚洲国产精品字幕| 久久久99免费视频| 91色视频在线导航| 国产精品美女久久久免费| 久久国内精品一国内精品| 国产精品日本精品| 成人黄色av免费在线观看| 久久久99免费视频| 久久精品视频网站| 久久国产精品久久久久久久久久| 亚洲片在线资源| 在线观看免费高清视频97| www.欧美视频| 久久国产精品影视| 欧美一级淫片播放口| 亚洲一级一级97网| 中文字幕欧美精品在线| 亚洲最大成人网色| 伊人久久五月天| 亚洲性xxxx| 久久久久国产精品www| 国产精品久久久久久网站| www国产亚洲精品久久网站| 久久成人这里只有精品| 激情懂色av一区av二区av| 国产精品久久久久91| 国产精品三级在线| 国产日韩欧美在线视频观看| 欧美日韩免费在线| 久久久久久久久久国产精品| 中文字幕成人在线| 97久久国产精品| 国产精品在线看| 国产91网红主播在线观看| 久久综合久久八八| 91久久久久久国产精品| 成人激情综合网| 亚洲综合在线播放| 国产精品91在线观看| 日本精品性网站在线观看| 亚洲91av视频| 97精品国产97久久久久久春色| 在线播放日韩精品| 久久不射热爱视频精品| 69av在线播放| 亚洲精品综合精品自拍| 在线电影中文日韩| 国产日韩欧美影视| 欧美激情一级精品国产| 欧美亚洲另类制服自拍| 国产丝袜精品视频| 国产精品精品一区二区三区午夜版| 热久久免费国产视频| 欧美自拍大量在线观看| 色偷偷av亚洲男人的天堂| 久久久久久网站| www.午夜精品| 亚洲aa中文字幕| 欧美激情a∨在线视频播放| 亚洲第一视频网站| 91豆花精品一区| 狠狠操狠狠色综合网| 91久久久在线| 92看片淫黄大片看国产片| 国产成人精品网站| 日韩国产欧美精品在线| 中文字幕亚洲无线码在线一区| 伊人久久久久久久久久久| 久久免费高清视频| 一本大道香蕉久在线播放29| 欧美激情亚洲综合一区| 国产a∨精品一区二区三区不卡| 亚洲国产美女久久久久| 国产精品久久久久久中文字| 91久久国产婷婷一区二区| 在线中文字幕日韩| 日韩精品视频中文在线观看| 国产精品久久久久av免费| 欧美日韩爱爱视频| 91亚洲精品一区| 91av在线国产| 欧美猛少妇色xxxxx| 国产福利成人在线| 国产精品日韩欧美综合| 亚洲女人天堂成人av在线| 久久国产精品网站| 狠狠色香婷婷久久亚洲精品| 亚洲一区二区自拍| 国产精品一区二区在线| 日日噜噜噜夜夜爽亚洲精品| 欧美性猛交xxxx偷拍洗澡| 日韩精品在线影院| 国产一级揄自揄精品视频| 日韩欧美中文在线| 欧美精品国产精品日韩精品| 久久精品美女视频网站| 国产欧美一区二区白浆黑人| 亚洲高清一二三区| 欧美xxxx做受欧美| 欧美日韩亚洲一区二区| 成人av在线天堂| 欧美视频中文字幕在线| 国产成人综合精品在线| 亚洲va欧美va国产综合久久| 久久视频中文字幕| 在线观看国产欧美| 日本欧美爱爱爱| 亚洲国产精品va在线看黑人| 成人精品视频在线| 91精品国产电影| 精品女同一区二区三区在线播放| 国产91精品高潮白浆喷水| 热久久这里只有精品| 久久久欧美精品| 97成人在线视频| 亚洲肉体裸体xxxx137| 亚洲一区二区精品| 欧洲成人免费视频| 国语自产精品视频在免费| 韩国国内大量揄拍精品视频| 欧美日韩激情美女| 欧美xxxx综合视频| 国产精品色视频| 久久综合网hezyo| 亚洲国产日韩欧美综合久久| 欧美一级电影久久| 亚洲人成网站免费播放| 国产精品久久久久久婷婷天堂| 亚洲人成啪啪网站| 国产精品久久综合av爱欲tv| 亚洲偷欧美偷国内偷| 在线播放日韩精品| 日韩欧美精品在线观看| 欧美精品18videos性欧| 国内精品久久久久久影视8| 久久中国妇女中文字幕| 日韩亚洲精品电影| 国产精品h在线观看| 国产精品日韩欧美大师| 亚洲精品视频在线播放| 96pao国产成视频永久免费| 91久久综合亚洲鲁鲁五月天|