0

单击 img 链接后,我有一个简单的幻灯片动画。客户端请求在新窗口/选项卡中打开链接。我尝试过window.openwindow.location = href;使用该var href = this.href;套装的每个选项都不起作用。

$("#coatings").click(function(event) {
         event.preventDefault();
         var href = this.href;

         $("#sqeeguee_rightLink").fadeIn(100).animate({
            right:'-=450px'                 
         }, 2000,
         function() {
             window.location = href;
         });
     });

HTML:

<div id="sqeeguee_rightLink"></div>
        <a href="url here" target="_blank" id="coatings"><img src="coatings.jpg" width="456" height="592" alt="" /></a>

任何输入都会很棒!

4

2 回答 2

1

您引用的代码可能“不起作用”,因为动画完成后,新 URL 会在同一窗口中打开。您已经取消了会打开新窗口的事件(通过调用event.preventDefault())。

您的尝试失败了,因为现代浏览器只允许 JavaScript 代码在处理用户启动的事件(例如 a )期间window.open打开窗口。您的动画由用户启动的事件启动,但随后允许事件处理程序完成,因此当您尝试执行时,就浏览器而言,您正在打开一个垃圾邮件窗口,其弹出块阻止它正在发生。:-)clickwindow.open

如果您的目标是在当前窗口上显示动画,然后在完成后打开一个新窗口,恐怕没有干净的方法可以做到这一点。您可能可以允许打开原始的新窗口,但让它进入后台(“pop-under”),然后在动画完成后,将其带到前台。不过,我不能将其视为出色的用户体验。

于 2012-11-09T17:12:58.880 回答
0

我相信您的问题是未正确捕获 href,而不是您想要打开链接的方式。

如果您需要打开单击链接的 href 属性(包装图像),请尝试以下操作:

var href = $(this).attr('href');

在您的事件处理程序方法中。

于 2012-11-09T17:21:19.823 回答