双击checkbox的时候IE和谷歌执行的方式不一样,求助!

如题,贴代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
        <script type="text/javascript">
            onload=function(){
                $("input[type='checkbox']").attr('ondblclick', false);  
                var inp=document.getElementsByTagName("input")[0];
                inp.onclick=function(){
                    if(inp.checked){
                        console.log("checked")
                    }else{
                        console.log("no checked")
                    }
                    
                }
            }
        </script>
    </head>
    <body>
        <input type="checkbox" name="" id="" value=""/>
    </body>
</html>

Chrome

clipboard.png

IE

clipboard.png

Chrome是执行了点击和取消事件,而IE是执行了两次点击事件,这是怎么回事啊,求指导!!!
小弟先谢谢了!

阅读 3.6k
2 个回答

IE 可能会区分单击和双击。双击的话,和单击处理方式一样,第二次并不会变成取消状态。如果时间间隔足够大,系统认为就是两次点击,就不会有这种情况了。

没碰到过类似的问题,不过你用 change 事件不行吗? 如果你想继续使用click,我教你怎么排查问题。

首先明确问题出在哪里,是IE跟设想有出入,而且输出条件都是inp.checked,所以第一步通过console.log(inp.checked)来判断checked值是否存在,如果不存在,那么问题就很清楚了,如果存在,那么我也不知道怎么回事____orz

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题