js 函數中 event 參數 、位置

函數中傳遞 event + 其他參數

<div id="btn" onclick="clickBtn(event,2)">任務總數</div>
<script>
    function clickBtn(event,val){
        console.log(event);
        console.log(val)
    }
</script> 

注意:event可以調換前後順序但必須是event關鍵字

如果不傳遞參數默認函數自帶 event

<div id="btn" onclick="clickBtn()">任務總數</div>
    <script>
        function clickBtn(){
           var ev=event ||window.event || arguments.callee.caller.arguments[0]; ;  // 瀏覽器兼容
            console.log(ev);
        }
 </script> 

注意:event.srcElement問題
問題說明:IE下,even對象有srcElement屬性,但是沒有target屬性;Firefox下,even對象有target屬性,但是沒有 srcElement屬性。
解決方法:使用srcObj = event.srcElement ? event.srcElement : event.target;

不傳遞event的時候也可以傳參 

 <div id="btn" onclick="clickBtn(2)">任務總數</div>
    <script>
        function clickBtn(a){
            console.log(event);
            console.log(a)
 }

"οnclick=function"

   <div id="btn">任務總數</div>
    <script> 
        var btn=document.getElementById('btn')
        btn.onclick=function(e){
            test(e,'aa')
        }
        function test(e,str){
            console.log(e.target)
            console.log(str)        
    }
    </script> 

addEventListener

 <div id="btn">任務總數</div>
    <script> 
        var btn=document.getElementById('btn')
        btn.addEventListener('click',function(e){
            test(e,'aa')
        })
        function test(e,str){
            console.log(e.target)
            console.log(str)        
    }
    </script> 

Event 參數中的座標位置

窗口座標:clientX、clientY
相對於用戶瀏覽器的左上角的x、y座標,也就是窗口座標,不包括工具欄、滾動條。
clientX、clientY是相對於可視區窗口的座標,即使有滾動條,在窗口(可視區窗口)相同的位置單擊,座標不變。

文檔座標:pageX、pageY
相對於當前瀏覽器,也就是文檔左上角x、y座標,
pageX=clientX + 頁面滾動橫向距離
pageY=clientY + 頁面滾動縱向距離

屏幕座標:screenX、screenY
相對於用戶顯示器的左上角x、y座標,有多塊屏幕以主屏幕爲準。

元素偏移座標:offsetX、offsetY
offset意爲偏移量,鼠標距離被點擊的元素距左上角的x、y座標,包含padding;如果點擊border 爲負值。
如果給盒子定義一個點擊事件,則這個offset座標這個盒子的左上角的距離

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章