Internet Explorer可信任的图像点击事件仅每秒触发一次

时间:2014-03-11 23:18:03

标签: javascript contenteditable internet-explorer-11

我在使用JavaScript处理Windows应用商店应用时遇到了这个问题,但它在IE中也可以重现。

下面是我实际实现的一个非常简化的版本。单击图像以外的任何位置时会显示警报。但是当点击图像时,事件仅每隔一次触发一次。我在第一次点击时获得调整大小的装饰,但事件似乎没有被正确触发。

有谁知道为什么以及如何预防这种情况?我想知道图像是在第一次点击时选择的。

<html>
    <body>
        <div id="outerEditor">
            <div id="innerEditor" contenteditable="true">
                <img src="test.png" />
            </div>
        </div>

        <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.0.min.js"></script>
        <script>
            $(document).ready(function(){
                $("#outerEditor").click( function(){
                    alert("click");
                });
            });
        </script>
    </body>
</html> 

添加了一个JSFiddle来显示问题:http://jsfiddle.net/72aH8/3/

2 个答案:

答案 0 :(得分:1)

您应该将点击事件从CLICK更改为MOUSEDOWN。

Updated Jsfiddle

<html>
<body>
    <div id="outerEditor">
        <div id="innerEditor" contenteditable="true">
            <img src="test.png" />
        </div>
    </div>

    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.0.min.js"></script>
    <script>
        $(document).ready(function(){
            $("#outerEditor").mousedown( function(){
                alert("click");
            });
        });
    </script>
</body>

答案 1 :(得分:0)

您的错误必须在其他地方,它适用于img样式:

img {
    width: 100px;
    height: 100px;
    background: red;
} 

工作小提琴:http://jsfiddle.net/Kg4Vg/