Jquery在新标签中打开(_blank)
我根据其他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 ,提供完整的工作解决方案。
在页面上设置链接需要@Ravi和@ncksllvn的答案组合:
// Find link in $(".product-item") and set "target" attribute to "_blank". $(this).find("a").attr("target", "_blank");
要在另一个窗口中打开页面,请参阅以下问题: jQuery单击_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.
替换此行:
$(this).target = "_blank";
附:
$( this ).attr( 'target', '_blank' );
这将把它的HREF设置为_blank。
你不能将目标属性设置为div,因为div不知道如何处理http请求。 而不是为链接标记设置目标属性。
$(this).find("a").target = "_blank"; window.location= $(this).find("a").attr("href")
window.location
始终引用当前窗口的位置。 更改它只会影响当前窗口。
可以做的一件事是在将target
属性设置为_blank
后强制点击链接:
检查一下: http : //www.techfoobar.com/2012/jquery-programmatically-clicking-a-link-and-forcing-the-default-action
免责声明:我的博客。