我根据其他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 ,提供完整的解决方案。
答案 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
后强制点击链接:
免责声明:是我的博客。