2012年11月1日 星期四

FireFox與JavaScript的不相容:MousePosition與MouseEvent



  • 先看Event吧

$(".DivDialogTitle").click(function (e) { DivClick(event); });

這種JQuery的寫法,可以把某個TAG物件的Click事件跟某個指定的函式關連在一起,可正常運作,沒有問題。



$(".DivDialogTitle").mousedown(function (e) { DivMouseDown(event); });

但是想把Mouse的事件跟某個指定的函式關連在一起,抱歉,FireFox辦不到(以後會不會更新成可支援,不曉得)



該怎麼做?得回到最原始的HTML語法在Tag中把事件跟函式綁定

<div onmouseup = "DivMouseUp(Event)" >

是的,改成這樣就行了

-------------------------------------------------------------------------------------------



  • 再看滑鼠位置吧

事件函式假設如下


function DivMouseDown(e)

{
     // 如果 e 是 null (有時候吧,意外發生),就把 e 設定為 window 的 event
     if ( !e )
     {
        e = window.event;
     }
     
     var IeMousePosition = e.X;
     
     var FireFoxMousePosition = e.PageX;
}


如上頭所列,想取得Mouse的位置,如果是IE或Chrome或Safari或Opera,你可以這麼用:e.X。如果是FireFox,那你得用e.PageX。




沒有留言:

張貼留言