2

所以我正在为我的网站创建一个 TagCloud,并且在使用 JQuery 来提醒我所选链接时遇到问题。该网站创建的链接很好,给了他们'tagLink'类,但是当我试图提醒该类的元素数量时,它给了我0。有什么想法吗?这是我的代码:

    $(function() {  
    //get tag feed  
    $.getJSON("tagcloud/tagcloud.php?callback=?", function(data) {  
          //create list for tag links  
        $("<ul>").attr("id", "tagList").appendTo("#tagCloud");  
        //create tags  
        $.each(data.tags, function(i, val) { 
            //create item  
            var li = $("<li>");  
            //create link  
            $("<a>").addClass('tagLink').text(val.tag).attr({title:"See all pages tagged with " + val.tag, href:"tags/" + val.tag + ".php", id: val.tag}).appendTo(li);  
            //set tag size  
            li.children().css("fontSize", (val.freq / 10 < 1) ? val.freq / 10 + 1 + "em": (val.freq / 10 > 2) ? "2em" : val.freq / 10 + "em");
            //add to list  
            li.appendTo("#tagList");  
        });   
    }); 

     //Increase database if link is clicked 
    alert($('.tagLink').size());//Test how many exist
    $('.tagLink').click(function(){
        var id = $(this).attr('id');
        $.ajax({    
            url: "tagcloud/tagcloud.php",
            type: "POST",
            data: {clicked : id}
        });
    });


});
4

2 回答 2

4

getJSON 是异步的,因此您的选择器在添加标签链接之前运行。在 AJAX 回调中移动 taglink 点击处理程序分配。

于 2011-09-20T18:47:46.133 回答
0

您可以改用 $.get() 或 $.ajax() 。

于 2013-04-13T20:08:57.477 回答