点击jQuery中的动态分配变量

时间:2012-08-04 17:27:01

标签: jquery hyperlink onclick

我对js和jquery相当新,并且已经在一段时间内使用了一些代码。我看到一些类似的问题,但是当我尝试实施解决方案时,我仍然没有得到我想要的行为 这些推文已加载,其中一些包含其他网站的网址。如果用户点击推文中的网址,我希望它在新窗口中打开。我很确定onclick函数正在发生什么事情(可能没有正确地分配给变量?)因为如果我删除了onclick,就会为每个引入的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。我会包含更多的代码,但经过大量的测试后,我确实认为问题在于我所包含的内容,但如果这还不足以确定问题,我会很乐意包含更多内容。这是我的第一个网络应用程序,所以如果我做的事情非常明显错误,请让我知道它是什么?!非常感谢!

1 个答案:

答案 0 :(得分:1)

我很困惑你链接的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);
});