2011-07-12 44 views
-1

我試圖讓一個頁面有跨瀏覽器支持處理事件,但我一直陷在Mozilla Firefox。我有IE和Chrome工作。該代碼是:Firefox將不會盡管經過功能

function positiontip(e){ 
    var e = window.event ? event : e; 
    if (enabletip) { 
     var curX; 
     var curY; 
     if (e.pageX || e.pageY) { 
     curX = e.pageX; 
     curY = e.pageY; 
     } else if (e.clientX || e.clientY) { 
     curX = e.clientX + document.body.scrollLeft 
      + document.documentElement.scrollLeft; 
     curY = e.clientY + document.body.scrollTop 
      + document.documentElement.scrollTop; 
     } 

當過我嘗試使用代碼,Firefox的控制檯吐出了一個錯誤,

e is undefined "if (e.pageX || e.pageY) {" 

我試圖通過

positiontip(); 

調用函數
positiontip(event); 

但無論是窩國王。 有什麼想法?

+1

你怎麼知道E爲正確傳遞調用者?包含調度事件處理程序的調用代碼。 – Toxikman

+0

@Toxikman:不知道。我認爲當e(或者你在函數中調用它)是參數時,firefox將事件傳遞給函數。 – RzITex

+2

是的,我們可以看到調用這個函數的代碼嗎? – slandau

回答

0

沒關係更換var e = window.event ? event : e;。問題在於函數positiontip()在另一個函數中被調用,另一個函數被傳遞給事件。我不得不改變html來將事件傳遞給showtooltip()[上層函數],然後將事件傳遞給positiontip()。