首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jquery在新窗口中打开链接

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

Stack Overflow用户
提问于 2010-04-09 17:29:25
回答 4查看 19.7K关注 0票数 7

我正在尝试使用Jquery而不是_blank在一个新窗口中打开几个链接,这样我的html仍然有效。我的代码如下所示:

代码语言:javascript
复制
$(document).ready(function() {
    $('a[id="external-url"]').click(function(){
        $(this).attr('target','_blank');
    });
});

除了当链接包含在我使用Jquery load()方法放在页面上的html中之外,这种方法工作得很好。有没有人能解释一下原因,请帮我找出解决方案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-09 17:33:47

更新:如果你在HTML5+ the target attribute is no longer deprecated (no longer missing, to be more accurate)中以it was in XHTML 1.0 (原始问题上下文)的形式阅读这篇文章。我建议如果你现在正在阅读这篇文章,忽略下面所有的东西,不管它是否抛出合规警告,都使用 target 属性,所有的浏览器都支持它,它永远不应该被留下out...the事实表明在后来的规范中删除它是一个错误。

这将会起作用:

代码语言:javascript
复制
$('a#external-url').live('click', function(){
  $(this).attr('target','_blank');
});

但是,if应该是唯一的,如果您加载的数量超过1,则它们需要有一个类,如下所示:

代码语言:javascript
复制
<a href="http://google.com" class="exteral-url">Google</a>

jQuery是这样的:

代码语言:javascript
复制
$('a.external-url').live('click', function(){
  $(this).attr('target','_blank');
});

符合标准的方式是:

代码语言:javascript
复制
$('a.external-url').live('click', function(e){
  window.open(this.href);
  e.preventDefault(); //or return false;
});
票数 15
EN

Stack Overflow用户

发布于 2010-04-09 17:32:31

代码语言:javascript
复制
$(function(){
    $('a[id="external-url"]').click(function(){
        window.open(this.href);
        return false;
    });
});

http://snipplr.com/view/4626/jquery-snip--open-link-in-new-window/

票数 4
EN

Stack Overflow用户

发布于 2010-04-09 17:30:39

使用

代码语言:javascript
复制
$('a[id="external-url"]').live("click", function(){
        $(this).attr('target','_blank');
    });

您的代码将click事件绑定到页面加载时可用的元素,而不是动态创建的元素。Live将把事件绑定到动态创建的元素上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2606282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档