2013-02-19 14 views
7

Skonfigurowałem niektóre Jquery na podstawie innych pytań/odpowiedzi StackOverflow. Celem tego skryptu jest utworzenie całego diva linku na podstawie dowolnego znacznika href znajdującego się w tym div.Jquery Otwórz w nowej karcie (_blank)

Działa to dobrze, ale muszę ustawić go na _blank, aby otworzyć w nowej karcie. Próbowałem poniżej bez powodzenia.

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

EDIT

Dzięki za pomoc, ale żadna z tych odpowiedzi faktycznie pracują. Jeśli ktokolwiek może wkleić pełny kod, który faktycznie działa, zamiast małych fragmentów bez sprawdzania, czy działa. Dzięki.

EDIT 2

Dzięki kristinalim, za dostarczenie kompletnego rozwiązania do pracy.

+0

to zostało odebrane przed: http://stackoverflow.com/questions/2827637/how-ca n-i-open-a-link-in-a-new-window – Ulises

+0

'window.location' ** always ** odnosi się do lokalizacji bieżącego okna. Zmiana go wpłynie ** tylko ** na bieżące okno. . – techfoobar

+0

$ ("Produkt-item ") click (function() { \t $ (this) .find (" a ") attr (" href");. \t window.open (this); return \t false; \t }); – user2085752

Odpowiedz

22

Ustawianie linki na stronie woud wymagają kombinacji @Ravi i @ odpowiedzi ncksllvn za:

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

Na otwarcie strony w innym oknie, patrz na to pytanie: jQuery click _blank I zobaczyć this reference dla window.open opcje personalizacji.

Aktualizacja:

Czy trzeba coś wzdłuż:

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

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

    return false; 
    }); 
}); 

Uwaga Wykorzystanie .attr():

$element.attr("attribute_name")     // Get value of attribute. 
$element.attr("attribute_name", attribute_value) // Set value of attribute. 
+0

Cześć Kristina, to wydaje się być na dobrej drodze. Czy możesz spojrzeć na poniższy kod i dać mi znać, co jest nie tak. – user2085752

+0

$ (dokument) .ready (function() { $ ("produkt produktu"). Click (function() { \t $ (this) .find ("a"). Target = "_blank"; \t window.open (this.href); \t return false; \t }); }); – user2085752

+0

Proszę zobaczyć zaktualizowaną odpowiedź. – kristinalim

3

Wymień ten wiersz:

$(this).target = "_blank"; 

Z:

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

To będzie ustawiał swoje HREF do _blank.

1

nie można ustawić atrybutu docelowego na div, ponieważ div nie wie, jak obsługiwać żądania http. zamiast ustawić atrybut docelowy dla tagu linku.

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