如果 Div 放置在 img 标记的顶部,则不会在 Div 上触发鼠标关闭事件 - 问题仅在 IE 中

Mousedown event not fired on a Div if the Div is placed on top of an img tag - issue is only in IE

本文关键字:Div 鼠标 事件 问题 IE img 如果 顶部      更新时间:2023-09-26

我在img标签上放置了一个Div。在我的例子中,带有cls 'justForClickCls'的Div被放置在一个img的顶部,img被包裹在另一个div'gameBoardElementGreyCls'中。在 IE 中,"justForClickCls"div 上的鼠标按下不会触发。但是,它可以在所有其他浏览器中工作。

这是代码。任何帮助都非常感谢。顺便说一下,我正在测试它 i IE 9

<div class='gameBoardElementCls'>
    <div id='9' class='justForClickCls' style='z-index:10;position:absolute;margin:20px;width:80px;height:80px;'></div>
    <div class='gameBoardElementGreyCls'><img src='img/greygmelement.png' width='110px' height='110px'></img></div>
</div>
<script>
    $("div.justForClickCls").mousedown(function () {
        alert('clicked 1');
    });
</script>

在我的情况下,将不透明度设置为零不是一个有效的解决方案,因为div 还有其他元素会变得不可见。这解决了问题。将以下内容添加到div 样式中:背景图片:网址('.');

被同样的问题困了几个小时,user983327的最后一条评论拯救了我的一天:IE要求我设置背景颜色才能使元素工作。

将不透明度设置为 0 然后获得了与透明背景相同的结果,并使整个事情跨浏览器兼容。

您应该修复的第一件事是 img 中的结束标记

<img src='img/greygmelement.png' width='110px' height='110px'></img>

<img src='img/greygmelement.png' width='110px' height='110px' />

接下来,鼠标按下似乎没有必要,因为您正在尝试捕获点击。简单使用click而不是mousedown

现在检查这个你的编码演示,它正在工作