0

我有以下 jQuery 代码,它似乎没有做任何事情。单击链接时,我试图将其url属性的值复制到iframe'ssrc属性中。

基本上,这应该使链接在 iframe 中打开(每次单击新链接时都会替换 iframe 的内容),而不是像普通链接一样。

那么我的代码有什么问题?

$('p.tweet a').click(function(){
    var link = $(this).attr('url');
    $('iframe').attr('src',link);
})
4

3 回答 3

5

也许您可能想要获取href属性(甚至阻止默认操作)

$('p.tweet a').click(function(ev){
    ev.preventDefault();
    var link = this.href;  // no need to call the $ function
    $('iframe').attr('src',link);
})
于 2012-07-09T22:28:11.460 回答
5

那么我的代码有什么问题?

您不会通过从您订阅的锚点的单击处理程序返回 false 来取消默认操作,因此在浏览器简单地重定向离开该页面之前,您的脚本不会有任何执行机会:

$('p.tweet a').click(function() {
    var link = $(this).attr('href');
    $('iframe').attr('src', link);
    return false;
});

顺便注意一下,我使用$(this).attr('href')的是$(this).attr('url'). 与标准 HTML 中的属性href相比,锚点的属性更常见url,但如果您发明了一些标记,其中锚点具有url属性,那么您可以试一试。

于 2012-07-09T22:28:12.693 回答
0

超链接的 URL 包含在href属性中,而不是url属性中。

您还应该阻止默认操作,使您的代码如下所示:

$('p.tweet a').click(function(event){
    var link = $(this).attr('url');
    $('iframe').attr('src',link);
    // cancel default event
    event.preventDefault();
});
于 2012-07-09T22:28:57.197 回答