2011-12-07 51 views
1

我遇到了在IE8中使用jQuery窗口連接mousedown事件的問題。我沒有收到任何錯誤,但事件似乎並未解僱。它在IE9和我嘗試過的所有其他瀏覽器中都能正常工作。這裏是我的代碼:在IE8中jQuery mousedown事件沒有觸發窗口

<html> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     function test(e) { 
      alert('test'); 
     } 

     $(document).ready(function() { 
      $(window).mousedown(test); 
     });  
    </script> 
</head> 
<body> 
</body> 
</html> 
+0

你可以用.click()來轉義不一致的mousedown處理(特別是在Opera和IE中)嗎? – Interrobang

回答

5

使用document代替window

$(document).ready(function() { 
    $(document).mousedown(function() { 
     alert('test'); 
    }); 
}); 
1

的問題是,您使用的是全球window.event對象,而不是jQuery的事件對象。 window.event僅適用於某些瀏覽器,並不是W3C標準。

jQuery規範化事件對象,所以它在所有瀏覽器中都是一樣的。事件處理程序將該jQuery事件對象作爲參數傳遞。你應該使用它。

$(".class_name").mousedown(function (e) { 

    switch (e.which) { 
    case 1: //leftclick 
     //... 
     break; 
    case 3: //rightclick 
     //... 
     break; 
    } 
}); 
相關問題