2013-02-19 6 views
7

Я установил некоторые Jquery, основанные на других вопросах/ответах StackOverflow. Цель этого скрипта состоит в том, что он делает целую div ссылкой на основе любого тега href, который находится внутри этого div.JQuery Открыть в новой вкладке (_blank)

Это прекрасно работает, но мне нужно установить его на _blank, чтобы открыть его на новой вкладке. Я пробовал ниже, не повезло.

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

EDIT

Спасибо за помощь, но ни один из этих ответов фактически не работает. Если кто-то может вставить полный код, который на самом деле работает, а не небольшие фрагменты без тестирования, если он работает. Благодарю.

EDIT 2

Благодаря kristinalim, для обеспечения полного рабочего раствора.

+0

Это есть ответ: HTTP://stackoverflow.com/questions/2827637/how-ca n-i-open-a-link-in-the-new-window – Ulises

+0

'window.location' ** всегда ** относится к местоположению текущего окна. Изменение этого параметра коснется ** только ** текущего окна. . – techfoobar

+0

$ ("Продукт-деталь ") нажмите (функция() { \t $ (это) .find (" а ") Attr (" HREF");. \t window.open (это); \t возвращение false; \t }); – user2085752

ответ

22

Установка ссылок на странице woud требуется сочетание @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 вариантов настройки.

Update:

Вы должны что-то вместе:

$(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. 
+0

Привет, Кристина, похоже, на пути. Можете ли вы посмотреть на код ниже и сообщить мне, что случилось. – user2085752

+0

$ (document) .ready (function() { $ (". Product-item"). Click (function() { \t $ (this) .find ("a"). Target = "_blank"; \t window.open (this.href); \t return false; \t }); }); – user2085752

+0

См. Обновленный ответ. – kristinalim

3

Заменить строку:

$(this).target = "_blank"; 

С:

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

Это установит его HREF в _blank.

1

вы не можете установить атрибут цели в div, becacuse div не знает, как обрабатывать http-запросы. вместо целевого атрибута для тега ссылки.

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

window.locationвсегда относится к местоположению текущего окна. Изменение этого будет влиять только на Текущее окно.

Единственное, что может быть сделано, заставляя нажмите на ссылку после установки его атрибута target в _blank:

Проверьте это:http://www.techfoobar.com/2012/jquery-programmatically-clicking-a-link-and-forcing-the-default-action

Отказ от ответственности: Его мой блог.

Смежные вопросы