Jquery在新标签中打开(_blank)

时间:2013-02-19 05:11:51

标签: jquery

我根据其他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 个答案:

答案 0 :(得分:23)

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

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

要在其他窗口中打开该页面,请参阅此问题:jQuery click _blank并查看this reference了解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.

答案 1 :(得分:3)

替换此行:

$(this).target = "_blank";

使用:

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

这会将其HREF设置为_blank。

答案 2 :(得分:1)

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

$(this).find("a").target = "_blank";
window.location= $(this).find("a").attr("href")

答案 3 :(得分:1)

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

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

选中此项: http://www.techfoobar.com/2012/jquery-programmatically-clicking-a-link-and-forcing-the-default-action

免责声明:是我的博客。

相关问题