最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS和JQ的event對(duì)象區(qū)別分析

 更新時(shí)間:2014年11月24日 16:52:45   投稿:hebedich  
js和jq的event對(duì)象大同小異,本文簡單對(duì)比下它們的'click'事件下的不同和應(yīng)用,給有需要的小伙伴參考下

代碼測試:

復(fù)制代碼 代碼如下:

<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>

結(jié)果分析:

復(fù)制代碼 代碼如下:

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選擇器匹配的元素,可能是第一個(gè)捕獲事件的元素,然后向上冒泡時(shí)其中一個(gè)才是選擇器匹配的元素*/
},
 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/*誰在監(jiān)聽?就是這個(gè)元素啦。*/,
  isDefaultPrevented: function,
  handleObj: Object,
  jQuery211024030584539286792: true,
  originalEvent: MouseEvent,
  shiftKey: false
}
 body-click-delegate-event: {
  currentTarget: HTMLBodyElement,
  delegateTarget: HTMLBodyElement,
  target: HTMLDivElement
}

總結(jié):

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

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

復(fù)制代碼 代碼如下:

var view = Backbone.View.extend({
  el: document.body,
   events: {
    'click p': 'showText'     // 委托body監(jiān)聽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對(duì)象大同小異,但還是有些許區(qū)別的,大家是否了解了呢

相關(guān)文章

  • 在前端中Proj4.js使用簡單介紹及進(jìn)階應(yīng)用

    在前端中Proj4.js使用簡單介紹及進(jìn)階應(yīng)用

    這篇文章主要介紹了在前端中Proj4.js使用簡單介紹及進(jìn)階應(yīng)用的相關(guān)資料,Proj4是一個(gè)用于處理JavaScript里的幾何圖形和坐標(biāo)計(jì)算的庫,它提供了多邊形、點(diǎn)、線等幾何對(duì)象的計(jì)算功能,需要的朋友可以參考下
    2025-01-01
  • JavaScript替換當(dāng)前頁面的方法

    JavaScript替換當(dāng)前頁面的方法

    這篇文章主要介紹了JavaScript替換當(dāng)前頁面的方法,涉及javascript中replace方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • javascript 獲取iframe里頁面中元素值的方法

    javascript 獲取iframe里頁面中元素值的方法

    本篇文章主要是對(duì)javascript獲取iframe里頁面中元素值的方法進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助
    2014-02-02
  • bootstrap表單按回車會(huì)自動(dòng)刷新頁面的解決辦法

    bootstrap表單按回車會(huì)自動(dòng)刷新頁面的解決辦法

    這篇文章主要介紹了bootstrap表單按回車會(huì)自動(dòng)刷新頁面的問題及解決辦法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • D3.js實(shí)現(xiàn)柱狀圖的方法詳解

    D3.js實(shí)現(xiàn)柱狀圖的方法詳解

    相信大家都知道數(shù)據(jù)可視化就是借助圖形化的手段把生硬的數(shù)據(jù)生動(dòng)化,以此來展示出數(shù)據(jù)想要表達(dá)的信息,而圖表是最通常的一種數(shù)據(jù)可視化手段??扇孔约杭兪謩?dòng)編寫各種圖表實(shí)在是讓人頭疼,各種計(jì)算各種煩?,F(xiàn)在就為大家介紹如何用D3.js來實(shí)現(xiàn)柱狀圖。
    2016-09-09
  • 用js編寫的簡單的計(jì)算器代碼程序

    用js編寫的簡單的計(jì)算器代碼程序

    這篇文章主要介紹了用js編寫的簡單的計(jì)算器代碼程序,非常具有實(shí)用性,感興趣的小伙伴可以參考下
    2015-08-08
  • JavaScript中去掉數(shù)組中的重復(fù)值的實(shí)現(xiàn)方法

    JavaScript中去掉數(shù)組中的重復(fù)值的實(shí)現(xiàn)方法

    百度面試時(shí)問的一道題目,蠻常規(guī)的,但是當(dāng)時(shí)自己的回答挺差勁的。現(xiàn)在總結(jié)記錄下~
    2011-08-08
  • layui實(shí)現(xiàn)數(shù)據(jù)表格隱藏列的示例

    layui實(shí)現(xiàn)數(shù)據(jù)表格隱藏列的示例

    今天小編就為大家分享一篇layui實(shí)現(xiàn)數(shù)據(jù)表格隱藏列的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • javascript實(shí)現(xiàn)簡單放大鏡效果

    javascript實(shí)現(xiàn)簡單放大鏡效果

    這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)簡單放大鏡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • js-窮舉法 (y0h)

    js-窮舉法 (y0h)

    js-窮舉法 (y0h)...
    2006-09-09

最新評(píng)論

丁青县| 泰顺县| 满城县| 岗巴县| 买车| 岗巴县| 湘潭市| 南部县| 垫江县| 河南省| 龙江县| 合水县| 清新县| 瓦房店市| 双峰县| 正镶白旗| 天峨县| 达尔| 三原县| 乡宁县| 岱山县| 卢氏县| 吴旗县| 平乡县| 锡林浩特市| 石景山区| 西安市| 广宗县| 静海县| 花莲市| 陵川县| 霸州市| 合江县| 电白县| 临颍县| 娱乐| 武清区| 天门市| 阿城市| 延寿县| 治县。|