天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

講兩件事:1.this指針的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件處理上的區別

第一件事情.
this 指鐘是JavaScript語言中的一個特殊指鐘,他在代碼運行時,指向調用this語句的當前對象.
如果是事件綁定函數,則指向被綁定的元素本身.
<script type="text/Javascript">
//by Go_Rush(阿舜) from  http://ashun.cnblogs.com/
alert(this===window)  //true  直
接調用的時候,指向window本身
var gorush={
    f:function(){
        alert(this===gorush)    //true
    }
}
gorush.f()   //指向 gorush對象
document.onclick=function(){   
    alert(this===document)  //true ,指向 document
}
/*
element.onclick=function(){
    alert(this===element)     //true
}
*/
</script>
特別要值得注意的是,當多個對象嵌套的時候, this 是指向最近調用它的那個對象的
obj1={
    obj2:{
        f:function(){
            alert(this===obj1.obj2)  //這里 this 并不是指向 obj1的哦。
        }
    }
}
obj1.obj2.f()
再舉一個非常容易出錯的例子,  點這里看相關鏈接
<script type="text/Javascript">
//by Go_Rush from http://ashun.cnblogs.com/
//以下gorush1中 this的用法是錯誤的,這個錯誤10個程序員6個犯
var gorush1={
    showMsg:function(){alert("hello,world")},
    doAjax:function(){
        new Ajax.Request("index.php",{onSuccess:function(){
            this.showMsg()
        }})
    }         
}
//gorush2中的才是對的
var gorush2={
    showMsg:function(){alert("hello,world")},
    doAjax:function(){
        var self=this;    //備份 gorush2對象 
        new Ajax.Request("index.php",{onSuccess:function(){
            self.showMsg()
        }})
    }         
}
</script>

第二件事情:
   閑話不多說,先上碟小菜.
<script type="text/Javascript">
var btn=null
window.onload=function(){
    btn=document.getElementById("btn")    
    if (window.attachEvent) btn.attachEvent("onclick",gorush);
    if (window.addEventListener) btn.addEventListener("click",gorush,false)
}
function gorush(){
    if (this===window) alert("this==window")   //ie6.0下,這句會執行
    if (this===btn)        alert("this==btn")        //ff1.5下,  這句會執行
}
</script>
<input type="button" value="click me" id="btn">
真不明白為什么 ie 會這樣搞,讓人很郁悶啊,為什么把 this 指向 window呢?
解決方法:
1. 事件綁定的時候不要用 attachEvent, 可憐的我,當時就是用的prototype.js的Event.Observe方法
這樣 element.onclick=function.....  這樣在兩個瀏覽器中 this 指鐘都指向 element
2. 在處理函數 gorush中 用 getEvent()方法統一獲取事件,然后在用 evt.srcElement || evt.target 獲取 element對象

JavaScript技術講兩件事:1.this指針的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件處理上的區別,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久精品国产亚洲AV影院 | 伊人久久大香线蕉综合亚洲 | 伊人久综合 | 野花日本韩国视频免费高清观看 | 动漫美女被到爽了流 | 国产在线观看91精品 | 亚洲 欧美 国产 综合 在线 | 精品久久久久久综合网 | gogo免费在线观看 | 精品午夜国产福利观看 | 18未满不能进的福利社 | 精品丰满人妻无套内射 | 欧美亚洲国产专区在线 | 色欲国产麻豆精品AV免费 | 久久视频这只精品99re6 | 国产360激情盗摄全集 | 呜呜别塞了啊抽插 | 色综合久久网女同蕾丝边 | 扒开校花粉嫩小泬喷潮漫画 | 国产女人毛片 | 午夜国产免费视频亚洲 | 99久久精品6在线播放 | 色情内射少妇兽交 | tobu中国日本高清 | 99国产精品久久久久久久日本竹 | 男男校园园bl文全肉高h寝室 | 草莓视频在线看免费高清观看 | 久青草国产观看在线视频 | 男人免费网站 | 影音先锋av色咪影院 | 久久青草免费91线频观看站街 | 亚洲 欧美 制服 视频二区 | 国产精品爽爽久久久久久无码 | 国产AV国产精品国产三级在线L | 最近中文字幕完整版高清 | 777久久人妻少妇嫩草AV | 桃花论坛POWERED2019 | 午夜AV亚洲一码二中文字幕青青 | 国产精品高潮AV久久无码 | 一品道门在线视频高清完整版 | 国内精品久久久久久久试看 |