我有以下 jQuery 代码,它似乎没有做任何事情。单击链接时,我试图将其url
属性的值复制到iframe
'ssrc
属性中。
基本上,这应该使链接在 iframe 中打开(每次单击新链接时都会替换 iframe 的内容),而不是像普通链接一样。
那么我的代码有什么问题?
$('p.tweet a').click(function(){
var link = $(this).attr('url');
$('iframe').attr('src',link);
})
我有以下 jQuery 代码,它似乎没有做任何事情。单击链接时,我试图将其url
属性的值复制到iframe
'ssrc
属性中。
基本上,这应该使链接在 iframe 中打开(每次单击新链接时都会替换 iframe 的内容),而不是像普通链接一样。
那么我的代码有什么问题?
$('p.tweet a').click(function(){
var link = $(this).attr('url');
$('iframe').attr('src',link);
})
也许您可能想要获取href
属性(甚至阻止默认操作)
$('p.tweet a').click(function(ev){
ev.preventDefault();
var link = this.href; // no need to call the $ function
$('iframe').attr('src',link);
})
那么我的代码有什么问题?
您不会通过从您订阅的锚点的单击处理程序返回 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
属性,那么您可以试一试。
超链接的 URL 包含在href
属性中,而不是url
属性中。
您还应该阻止默认操作,使您的代码如下所示:
$('p.tweet a').click(function(event){
var link = $(this).attr('url');
$('iframe').attr('src',link);
// cancel default event
event.preventDefault();
});