单击可在jQuery中动态分配变量



我对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);
});

最新更新