执行 "ctrl"+ "click"时,jQuery OnClick 在 IE 中不起作用

标签 jquery ajax internet-explorer onclick

我有一个执行 ajax POST 的 jQuery 函数。每当使用填充的 ID“单击”链接 (href) 时,函数就会启动一个操作。

我的函数在 Chrome 中运行良好。当我简单地“单击”链接或按住“Ctrl”+“单击”(在新选项卡中打开)时,ajax POST 就会执行它应该执行的操作。在 IE 中,当我只需“单击”链接时,它就会按预期工作。但是当我按住“Ctrl”+“单击”(在新选项卡中打开)时,ajax POST 被完全忽略,就好像没有单击任何内容一样。 IE 中的新选项卡打开,但我的 ajax POST 被跳过。

如何让 Internet Explorer 中的 jQuery 识别“Ctrl”+“Click”?

$(document).ready(function () {
        $(document).on('click', 'a', function () {
            var reportNum = $(this).attr("id");
            var embed = $(this).attr("name");
            if (reportNum == null) {
            } else {
                $.ajax({
                    type: "POST",
                    url: "@Url.Action("updateHitCount", "Base")",
                    data:
                {
                    reportNum: reportNum
                }
                });
            }
        });
    });

HTML


<a href="https://google.com" id="foo">Click Here!</a>

最佳答案

这是一个有趣的问题。

它让我学到了一些关于跨浏览器的新知识思考

根据我的观察,我认为 Internet Explorer 故意阻止按下 CTRL 键时发生click 事件。这是为了以 Microsoft 的方式管理弹出窗口...

我还发现this behavior exist at least since IE7 .

如果您在选项卡中查看“Internet 选项”。
根本没有办法选择像“不做任何事情”这样的东西。

enter image description here

我做了一个CodePen测试一下...

似乎触发 click 事件的唯一情况是 href 是空白哈希 (href="#" )。

因此,就像 Vector 建议的那样,使用 mouseup 事件而不是 click 可能是一种解决方案。

关于执行 "ctrl"+ "click"时,jQuery OnClick 在 IE 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44729183/

相关文章:

javascript - 延迟更具体的匹配的正则表达式

javascript - 需要帮助将对象值作为 jQuery 选择器拉入

javascript - 使用 Javascript 在页面末尾附加新内容

javascript - 如何检测 IE 8 中的页面缩放级别?

windows - 测试 IE 和其他 Windows 浏览器的公认方法是什么?

javascript - jquery at caret 插件在 IE 中不起作用

javascript - 如何从knockoutjs更新对象的值?

javascript - 我正在尝试在 <a> 标记上设置类名。问题是当我单击链接时,页面刷新并且该类被删除

jquery - 如何将值传递给 ajaxUpload 函数?

javascript - IE11 : Object doesn't support property or method 'replaceWith'