亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么event.clinetX能獲取到坐標值呢,event沒定義過呀?

event是一個關鍵字嗎? function fnDown(){document.onmousemove=function(event){event= event||window.event;document.title=event.clientX+','event.clientY;}中的event并沒有傳進來,也沒有實現定義,為什么event.clientX和event.clientY能獲取到坐標呢?

正在回答

3 回答

在了解這個函數前可以再復習下上面講的幾個章節,先了解下event什么,是怎么產生的。

老師講的前幾章節的內容都是《javascript高級程序設計》上的內容,正好最近也在看這本書,總結了以下你的問題相關的知識,也許會對你理解這個函數有幫助,具體知識還可以從書上得到。

  1. ?event 是一個事件對象,當你觸發DOM上的某個事件的時候就會產生這個對象。對象里面包含了所有與事件相關的信息。包括導致事件的元素,事件的類型(click、focus、blur、keydown、keypress、mouseover、 load等等事件類型),以及與特定事件相關的信息等。

  2. 對于兼容DOM的瀏覽器,會將一個event對象直接傳入到事件處理函數中。

?????無論你用DOM0級的事件處理函數

????????????//like this.

????????????obj.onclick = function(event){ ? //函數體 ??}

????還是用DOM2級的處理函數

?????????????//like this.

????????????obj.addEventListener("click",function(event){ 函數體},false);

????都會傳入一個event對象到事件處理函數中。

3.????在IE中 event 對象又是怎樣的呢:

????如果你用dom0級方法添加事件處理程序時,event對象就是作為windows對象的一個屬性來存在的。

比如: ?obj.onclick = function( ){

????????????????var event = window.event; ? ?//在IE中獲取event對象

}

? 如果你不用dom0級方法添加事件,而是用IE自己的事件處理程序 ?attachEvent( )添加事件的話:

????obj.attachEvent("onclic",function(event){ ? //因為這個方法的作用域本來就在全局作用域的 也就是windows,相當于也是通過windows對象來訪問event對象

????????alert(event.type); //click?

});

所以你問的?function fnDown(){

????????????????document.onmousemove=function(event){

????????????????event= event||window.event; ?//它其實已經在這里獲取了event對象了,無論它是不是兼容DOM的瀏覽器,都可以通過這個跨瀏覽器的代碼獲取event對象

????????????????document.title=event.clientX+','event.clientY; ?//所以這里能獲得客戶端的坐標信息;clientX?clientY都是event對象的屬性

}

2 回復 有任何疑惑可以回復我~
#1

Daniel_ 提問者

非常感謝!
2015-11-10 回復 有任何疑惑可以回復我~
#2

Daniel_ 提問者

我最近也在看這本書,還沒看到這一節,感謝你碼了那么多字
2015-11-10 回復 有任何疑惑可以回復我~

是事件

0 回復 有任何疑惑可以回復我~

omnouseover 不就是個時間嗎

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么event.clinetX能獲取到坐標值呢,event沒定義過呀?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號