為什么event.clinetX能獲取到坐標(biāo)值呢,event沒(méi)定義過(guò)呀?
event是一個(gè)關(guān)鍵字嗎? function fnDown(){document.onmousemove=function(event){event= event||window.event;document.title=event.clientX+','event.clientY;}中的event并沒(méi)有傳進(jìn)來(lái),也沒(méi)有實(shí)現(xiàn)定義,為什么event.clientX和event.clientY能獲取到坐標(biāo)呢?
2015-10-23
在了解這個(gè)函數(shù)前可以再?gòu)?fù)習(xí)下上面講的幾個(gè)章節(jié),先了解下event什么,是怎么產(chǎn)生的。
老師講的前幾章節(jié)的內(nèi)容都是《javascript高級(jí)程序設(shè)計(jì)》上的內(nèi)容,正好最近也在看這本書(shū),總結(jié)了以下你的問(wèn)題相關(guān)的知識(shí),也許會(huì)對(duì)你理解這個(gè)函數(shù)有幫助,具體知識(shí)還可以從書(shū)上得到。
?event 是一個(gè)事件對(duì)象,當(dāng)你觸發(fā)DOM上的某個(gè)事件的時(shí)候就會(huì)產(chǎn)生這個(gè)對(duì)象。對(duì)象里面包含了所有與事件相關(guān)的信息。包括導(dǎo)致事件的元素,事件的類(lèi)型(click、focus、blur、keydown、keypress、mouseover、 load等等事件類(lèi)型),以及與特定事件相關(guān)的信息等。
對(duì)于兼容DOM的瀏覽器,會(huì)將一個(gè)event對(duì)象直接傳入到事件處理函數(shù)中。(
?????無(wú)論你用DOM0級(jí)的事件處理函數(shù):
????????????//like this.
????????????obj.onclick = function(event){ ? //函數(shù)體 ??}
????還是用DOM2級(jí)的處理函數(shù):
?????????????//like this.
????????????obj.addEventListener("click",function(event){ 函數(shù)體},false);
????都會(huì)傳入一個(gè)event對(duì)象到事件處理函數(shù)中。
)
3.????在IE中 event 對(duì)象又是怎樣的呢:
????如果你用dom0級(jí)方法添加事件處理程序時(shí),event對(duì)象就是作為windows對(duì)象的一個(gè)屬性來(lái)存在的。
比如: ?obj.onclick = function( ){
????????????????var event = window.event; ? ?//在IE中獲取event對(duì)象
}
? 如果你不用dom0級(jí)方法添加事件,而是用IE自己的事件處理程序 ?attachEvent( )添加事件的話:
????obj.attachEvent("onclic",function(event){ ? //因?yàn)檫@個(gè)方法的作用域本來(lái)就在全局作用域的 也就是windows,相當(dāng)于也是通過(guò)windows對(duì)象來(lái)訪問(wèn)event對(duì)象
????????alert(event.type); //click?
});
所以你問(wèn)的?function fnDown(){
????????????????document.onmousemove=function(event){
????????????????event= event||window.event; ?//它其實(shí)已經(jīng)在這里獲取了event對(duì)象了,無(wú)論它是不是兼容DOM的瀏覽器,都可以通過(guò)這個(gè)跨瀏覽器的代碼獲取event對(duì)象
????????????????document.title=event.clientX+','event.clientY; ?//所以這里能獲得客戶端的坐標(biāo)信息;clientX?clientY都是event對(duì)象的屬性
}
2015-10-15
是事件
2015-10-15
omnouseover 不就是個(gè)時(shí)間嗎