我试图使用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)