2013-02-19 13 views
7

मैंने कुछ Jquery को अन्य StackOverflow प्रश्न/उत्तरों के आधार पर सेट अप किया है। इस स्क्रिप्ट का उद्देश्य यह है कि यह पूरे div को उस div के अंदर मौजूद किसी भी href टैग के आधार पर एक लिंक बनाता है।नए टैब में jQuery ओपन (_blank)

यह ठीक काम करता है हालांकि मुझे इसे एक नए टैब में खोलने के लिए _blank पर सेट करने की आवश्यकता है। मैंने भाग्य के साथ नीचे की कोशिश की है।

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

संपादित

मदद के लिए धन्यवाद, लेकिन इन उत्तरों से कोई भी वास्तव में काम करते हैं। यदि कोई काम करता है तो परीक्षण के बिना छोटे स्निपेट की बजाय, वास्तव में काम करने वाले पूर्ण कोड को पेस्ट कर सकता है। धन्यवाद।

संपादित 2

धन्यवाद kristinalim, एक पूरा काम कर समाधान प्रदान करने के लिए करने के लिए।

+0

इस से पहले उत्तर दिया गया है /stackoverflow.com/questions/2827637/how-ca n-i-open-a-link-in-a-new-window – Ulises

+0

'window.location' ** हमेशा ** वर्तमान विंडो के स्थान को संदर्भित करता है। इसे बदलना ** केवल ** वर्तमान विंडो को प्रभावित करेगा। । – techfoobar

+0

$ ("। उत्पाद-आइटम") पर क्लिक करें (function() { \t $ (this) .find ("एक") attr ("href");। \t window.open (this); \t वापसी झूठा; \t }); – user2085752

उत्तर

22

स्थापना लिंक @Ravi की और @ ncksllvn के जवाब एक संयोजन की आवश्यकता होती है woud jQuery click _blank और अनुकूलन के लिए this referencewindow.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() का उपयोग: : http:/

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

हाय क्रिस्टीना, यह ट्रैक पर प्रतीत होता है। क्या आप नीचे दिए गए कोड को देख सकते हैं और मुझे बता सकते हैं कि क्या गलत है। – user2085752

+0

$ (दस्तावेज़) .ready (function() { $ ("उत्पाद-वस्तु")। क्लिक करें (फ़ंक्शन() { \t $ (यह)। ढूँढें ("ए")। लक्ष्य = "_blank"; \t window.open (this.href); \t झूठी वापसी; \t }); }); – user2085752

+0

कृपया अद्यतन उत्तर देखें। – kristinalim

3

इस लाइन को बदलें:

$(this).target = "_blank"; 

के साथ:

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

कि _blank करने के लिए अपने HREF सेट हो जाएगा।

1

आप div को लक्ष्य विशेषता सेट नहीं कर सकते हैं, becacuse div को http अनुरोधों को संभालने का तरीका नहीं पता है। इसके बजाय आप लिंक टैग के लिए लक्ष्य विशेषता सेट करते हैं।

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

window.locationहमेशा वर्तमान विंडो के स्थान को दर्शाता है। इसे बदलने से वर्तमान विंडो केवल प्रभावित होगी।

एक बात है कि किया जा सकता है _blank करने के लिए अपने target विशेषता सेट करने के बाद लिंक पर क्लिक मजबूर कर रहा है:

चेक करें:http://www.techfoobar.com/2012/jquery-programmatically-clicking-a-link-and-forcing-the-default-action

अस्वीकरण: इसका मेरे ब्लॉग। अन्य विंडो में पेज खोलने के लिए

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

, इस सवाल देखें:: पृष्ठ पर

संबंधित मुद्दे