2009-12-19 2 views
19

Я пробовал много вариантов поставить target="_blank" в ссылках с jQuery, но я не могу заставить его работать.Как положить target = "_ blank" в jQuery?

Вот мой код:

var thumbfile = "<?php echo $smit_iturl_v; ?>"; 
jQuery(document).ready(function() { 
    var actualHost = jQuery.trim(jQuery.url.attr("host")); 
    jQuery("a img").each(function (i) { 

     if (jQuery.trim(jQuery.url.setUrl(jQuery(this).attr("src")).attr("host")) == actualHost &&  
      (jQuery.url.setUrl(jQuery(this).attr("src")).attr("path")).indexOf("wp-content") != -1 && 

      isImage(jQuery.url.setUrl(jQuery(this).attr("src")).attr("file"))) { 

      var parentTag = jQuery(this).parent().get(0).tagName; 
      parentTag = parentTag.toLowerCase(); 

      if (parentTag == "a" && 
      jQuery.url.setUrl(jQuery(this).parent().attr("href")).attr("host") == actualHost && 
      jQuery.url.setUrl(jQuery(this).parent().attr("href")).attr("path").indexOf("wp-content") != -1 && 
      isImage(jQuery(this).parent().attr("href"))) { 

       var description = (jQuery(this).attr("alt") == "") ? jQuery(this).attr("title") : jQuery(this).attr("alt"); 
       jQuery(this).parent().attr("href", thumbfile + 
         "?title=" + jQuery(this).attr("title") + 
         "&description=" + description + 
         "&url=" + stripDomain(jQuery(this).parent().attr("href")) 

       ); 
      } 
     } 
    }); 

Как я могу это сделать?

ответ

16

Поскольку вы итерацию по элементам изображения, которые Чайлдс якоря, в начале цикла вы можете установить его:

//... 
jQuery("a img").each(function (i) { 
    // 'this' is the img element, you should get the parent anchor 
    jQuery(this).parent().attr('target', '_blank'); 
    //... 
}); 
72

Слишком много информации! Это должно работать нормально:

$("a").attr("target","_blank"); 

См. Пример здесь http://jsbin.com/evexi/edit. Он работает отлично.

+9

Если вы хотите открыть внешние ссылки в новом окне, это может быть полезно. '$ (" a [href^= 'http'] "). attr ('target', '_ blank');' –

+0

Спасибо, помощник, тоже помог мне – DextrousDave

+0

Сумасшедший полезный, спасибо! –

10

Чтобы добавить к удивительной простоте этого ответа, который был очень полезным, кстати, вы можете настроить таргетинг на несколько типов ссылок, например:

$("#whatever_id a, #another_id, #yet_another, #etc").attr("target","_blank"); 

Просто держать разные идентификаторы через запятую.

7

Вы можете указать все ссылки, которые вы хотите открыть в новом окне, класс, например 'target-blank';

<a href='#' class='any existing classes target-blank'>Opens in a new window</a> 

затем добавить каплю JQuery

$("a.target-blank").attr('target','_blank'); 

Valid XHTML и DOM, который понимает цель = '_ пустой'!

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