7

我已经根据其他 StackOverflow 问题/答案设置了一些 Jquery。该脚本的目的是使整个 div 成为基于该 div 内的任何 href 标记的链接。

这很好用,但是我需要将其设置为 _blank 才能在新选项卡中打开。我试过下面没有运气。

$(document).ready(function() {
    $(".product-item").click(function() {
        $(this).target = "_blank";
        window.location = $(this).find("a").attr("href");
        return false;
    });
});

编辑

感谢您的帮助,但这些答案都没有真正起作用。如果有人可以粘贴实际有效的完整代码,而不是不测试它是否有效的小片段。谢谢。

编辑 2

感谢kristinalim提供了一个完整的工作解决方案。

4

4 回答 4

23

在页面上设置链接需要结合@Ravi 和@ncksllvn 的答案:

// Find link in $(".product-item") and set "target" attribute to "_blank".
$(this).find("a").attr("target", "_blank");

要在另一个窗口中打开页面,请参阅以下问题:jQuery click _blank并查看此参考window.open获取自定义选项。

更新

你需要一些东西:

$(document).ready(function() {
  $(".product-item").click(function() {
    var productLink = $(this).find("a");

    productLink.attr("target", "_blank");
    window.open(productLink.attr("href"));

    return false;
  });
});

注意 的用法.attr()

$element.attr("attribute_name")                   // Get value of attribute.
$element.attr("attribute_name", attribute_value)  // Set value of attribute.
于 2013-02-19T05:40:38.343 回答
3

替换这一行:

$(this).target = "_blank";

和:

$( this ).attr( 'target', '_blank' );

这会将其 HREF 设置为 _blank。

于 2013-02-19T05:15:15.283 回答
1

您不能将目标属性设置为 div,因为 div 不知道如何处理 http 请求。而不是为链接标签设置目标属性。

$(this).find("a").target = "_blank";
window.location= $(this).find("a").attr("href")
于 2013-02-19T05:15:26.687 回答
1

window.location 总是指当前窗口的位置。更改它只会影响当前窗口。

可以做的一件事是在将其target属性设置为后强制单击链接_blank

检查这个: http ://www.techfoobar.com/2012/jquery-programmatically-clicking-a-link-and-forcing-the-default-action

免责声明:这是我的博客。

于 2013-02-19T05:23:57.000 回答