使用Jquery在新窗口中打开链接

mtw*_*let 7 jquery load

我试图使用Jquery而不是_blank在新窗口中打开一些链接,所以我的HTML仍然有效.我的代码看起来像这样:

$(document).ready(function() {
    $('a[id="external-url"]').click(function(){
        $(this).attr('target','_blank');
    });
});
Run Code Online (Sandbox Code Playgroud)

这很好用,除非链接包含在我使用Jquery load()方法放在页面上的html中.谁能解释为什么,请帮助解决方案?

Nic*_*ver 15

更新:如果您在HTML5 +世界中阅读此内容,则target属性不再被弃用(不再缺失,更准确),就像在XHTML 1.0(原始问题上下文)中一样.我建议如果你现在正在读这个,忽略下面的所有内容,使用target属性是否会抛出一个合规性警告,所有浏览器都支持它,它永远不应该被遗漏......事实上它是在以后添加的spec显示删除它是一个错误.


这将有效:

$('a#external-url').live('click', function(){
  $(this).attr('target','_blank');
});
Run Code Online (Sandbox Code Playgroud)

但是,ID应该是唯一的,如果您加载的数量超过1,则需要使用类,如下所示:

<a href="http://google.com" class="exteral-url">Google</a>
Run Code Online (Sandbox Code Playgroud)

和jQuery这样:

$('a.external-url').live('click', function(){
  $(this).attr('target','_blank');
});
Run Code Online (Sandbox Code Playgroud)

符合标准的方式是:

$('a.external-url').live('click', function(e){
  window.open(this.href);
  e.preventDefault(); //or return false;
});
Run Code Online (Sandbox Code Playgroud)