【问题标题】:jQuery hyperlinks open a link before my onclick eventjQuery 超链接在我的 onclick 事件之前打开一个链接
【发布时间】:2011-12-24 16:38:24
【问题描述】:

在我的弹出页面中,我有一个属性链接: id="myLink" href="http://..." target="_blank"

当用户点击链接时,它应该将链接作为默认事件打开,然后关闭弹出窗口。

我在弹出页面中有以下 jquery 代码来关闭弹出窗口。

 $('#myLink').click(function() {
                ClosePopupOverlay();
            });

现在它在 IE 中可以正常工作,但在 Firefox 和 Chrome 中,它只是关闭弹出窗口,根本不打开链接。

我们不能在所有浏览器中阻止默认事件并在 jquery 中添加自定义代码吗?有关如何解决此问题的任何想法?

非常感谢您的帮助!

【问题讨论】:

  • 建议尝试 e.preventDefault() 方法,这将有助于解决如下问题: $('#myLink').click(function(e) { e.preventDefault(); ClosePopupOverlay() ; window.open($("#mylink").attr("href")); });
  • 感谢您的帮助!我试过你的建议,它仍然可以在 IE 中运行,但不能在 Firefox 和 Chrome 中运行。在 Firefox 和 Chrome 中,当它完成 ClosePopupOverlay 时,以下代码无法运行,因为代码驻留在页面上并且页面已关闭。我在 window.open 之后尝试 ClosePopupOverlay,但在 2 个浏览器中也不起作用。焦点在新打开的窗口而不是弹出窗口上,下面的代码也不能运行:(
  • 这行得通! $('#myLink').click(function() { window.open($(this).attr("href")); event.preventDefault(); CloseQuoteOverlay(); });
  • 有道理...酷...干杯!!

标签: jquery hyperlink cross-browser


【解决方案1】:

看看这个帖子:event.stopPropagation() not working in chrome with jQuery 1.7

我帮他解决了这个确切的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多