2009-09-24 66 views
0

我正在在线音乐商店工作。有像myplaylists,mydownloads等按钮... 点击这些按钮,歌曲列表相应出现在网格视图。
问题是,当我点击按钮两次快速列表出现两次像1..4..8 1..4..8,如果我点击三次快速它发生三次。显示列表使用append()将歌曲添加到列表中。
这些事情只发生在Firefox上在Firefox中显示重复记录

我找不出这个问题。

function fillMyMusicSongGrid 
{ 
// code to fetch data from the database 
embedSongGrid(.....);//displays the grid 
} 

embedSongGrid(.....) 
{ 
    //displays the grid 
tableContent = '...............' 
$(tableCont).appendTo('table#songList'); 
} 
+2

你可以发布附加函数的代码吗? – rahul 2009-09-24 12:12:29

+1

我想你应该发布你的代码,好像你需要重置一个变量之前追加... – NDM 2009-09-24 12:13:21

回答

0

如果我猜对了,按下这些按钮可以让Ajax回调到服务器来获取信息,可能是一个JSON数组。然后,通过这些和append()循环到适当的div。无论是或者你得到的HTML只是追加它。

简单的解决办法:只empty()它,你添加它:

$.ajax({ 
    ... 
    success: function(data) { 
    $("#songlist").empty(); 
    for (song in data) { 
     $("#songlist").append(...); 
    } 
    } 
}); 

$.ajax({ 
    ... 
    success: function(html) { 
    $("#songlist").html(html); 
    } 
}); 
+0

感谢它真的工作 – Neal 2009-09-24 13:14:00

+0

但为什么我不会发生,如果我点击它缓慢 – Neal 2009-09-24 13:34:11

0

尝试

$(tableCont).empty(); 
$(tableCont).appendTo('table#songList'); 

,而不是

$(tableCont).appendTo('table#songList');