我对js和jquery还很陌生,并且已经在一些代码上挣扎了很长一段时间。我看到一些类似的问题发布,但当我试图实现解决方案时,我仍然没有得到我想要的行为
推文已经加载,有些推文中有url,有些则没有。如果用户点击推文中的url,我希望它在新窗口中打开。我很确定onclick函数发生了什么(可能没有正确分配给变量?),因为如果我删除onclick,就会为引入的每个url打开一个新窗口。
首先,我创建了链接变量,并提取出其余的文本,这样我就可以将url附加为超链接。如果用户点击url,我想在一个新窗口中打开变量link1(我直接从api中提取)。
var link="";
if(tweet.entities.urls[0]!=null){
if(tweet.entities.urls[0].url!=null){
var link1=tweet.entities.urls[0].url;
link=replaceLinks(link1);
$('link').live('click', function(){
window.open(link1);
});
}
}
if(tweet.geo==null){
$("#geo").append('<p><img src="'+tweet.profile_image_url+'" widt="48" height="48" />'+tweet.text+link+'</p>');
}
$('link').live('click', function(){
行是我尝试的最后一个方法,尽管我已经尝试了许多其他onclick赋值。我一直在firefox中测试这一点,并在重要的情况下使用aptana。我会包含更多的代码,但经过大量测试,我真的认为问题在我包含的行中,尽管如果这还不足以确定问题,我很乐意包含更多。这是我的第一个网络应用程序,所以如果我做错了什么,请告诉我它是什么?!非常感谢!
我对您的链接的id感到困惑。你的链接变量周围有引号,如果它应该包含链接id,那么它应该是这样的:
$(link).live('click', function(){
window.open(link1);
});
如果链接是你的链接的实际id或类,那么它应该是这样的:
$('#link').live('click', function(){ // id
$('.link').live('click', function(){ // class
编辑:
还需要注意的是,根据您使用的jQuery版本,live()是不推荐使用的,应该用on()代替
$(selector).on('click', function(){
window.open(link1);
});