在IE8中,jQuery的mousedown事件没有触发。

问题描述 投票:1回答:2

我有问题,连接 mousedown 在IE8中使用jQuery为窗口创建了一个事件,我没有收到任何错误,但事件似乎没有被触发。我没有收到任何错误,但事件似乎没有被触发。在IE9和其他所有我试过的浏览器中都能正常工作。这是我的代码。

<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>
javascript jquery internet-explorer-8 jquery-events
2个回答
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;
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.