2013-02-19 16 views
7

Ho installato alcuni Jquery in base al largo di altri StackOverflow domande/risposte. Lo scopo di questo script è che rende un intero div un link basato su qualsiasi tag href che si trova all'interno di quel div.Jquery aperto in una nuova scheda (_blank)

Questo funziona correttamente tuttavia è necessario impostarlo su _blank per aprirlo in una nuova scheda. Ho provato il sotto senza fortuna.

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

EDIT

Grazie per l'aiuto, ma nessuna di queste risposte realmente funzionano. Se qualcuno può incollare il codice completo che funziona effettivamente, piuttosto che piccoli frammenti senza test se funziona. Grazie.

EDIT 2

Grazie kristinalim, per fornire una soluzione di lavoro completa.

+0

Questo è stato risposto prima: http://stackoverflow.com/questions/2827637/how-ca n-i-open-a-link-in-a-nuova-finestra – Ulises

+0

'window.location' ** sempre ** si riferisce alla posizione della finestra corrente. La sua modifica influenzerà ** solo ** la finestra corrente. . – techfoobar

+0

$ ("prodotto-item ") Click (function() { \t $ (this) .find (" a ") attr (" href");. \t window.open (this); \t ritorno falso; \t }); – user2085752

risposta

22

Impostazione link sulla pagina Woud richiedono una combinazione di @Ravi e @ risposte di ncksllvn:

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

Per aprire la pagina in un'altra finestra, vedere questa domanda: jQuery click _blank E vedere this reference per window.open opzioni per la personalizzazione.

Aggiornamento:

Si avrebbe bisogno di qualcosa di simile:

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

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

    return false; 
    }); 
}); 

nota l'utilizzo di .attr():

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

Ciao Kristina, questo sembra essere sulla buona strada. Puoi guardare il codice qui sotto e fammi sapere cosa c'è che non va. – user2085752

+0

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

+0

Si prega di consultare la risposta aggiornata. – kristinalim

3

Sostituire questa linea:

$(this).target = "_blank"; 

Con:

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

che imposterà la sua HREF a _blank.

1

non è possibile impostare l'attributo target su div, perché div greco non sa come gestire le richieste HTTP. invece di impostare l'attributo target per il tag link.

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