Javascript 在firefox中显示重复记录

Javascript 在firefox中显示重复记录,javascript,html,javascript-events,queue,Javascript,Html,Javascript Events,Queue,我在一家在线音乐商店工作。有像我的播放列表,我的下载等按钮。。。 单击这些按钮,相应的歌曲列表将显示在网格视图中。 问题是,当我快速单击两次按钮时,列表会出现两次,如1..4..8 1..4..8,如果我快速单击三次,则会出现三次。显示列表的函数使用append()将歌曲添加到列表中。 这些事情只发生在firefox上 我想不出这个问题 function fillMyMusicSongGrid { // code to fetch data from the database embedSong

我在一家在线音乐商店工作。有像我的播放列表,我的下载等按钮。。。 单击这些按钮,相应的歌曲列表将显示在网格视图中。
问题是,当我快速单击两次按钮时,列表会出现两次,如1..4..8 1..4..8,如果我快速单击三次,则会出现三次。显示列表的函数使用append()将歌曲添加到列表中。
这些事情只发生在firefox上

我想不出这个问题

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

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

如果我猜对了,按下这些按钮会使Ajax回调服务器以获取信息,可能是作为JSON数组。然后循环遍历这些文件并将它们添加到相应的div中。要么这样做,要么得到HTML并将其追加

简单的解决方案:在添加之前先添加:

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

试一试

而不是

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

你可以发布append函数的代码吗?我认为你应该发布代码,似乎你需要在追加之前重置某个变量…但是为什么我缓慢地单击它不会发生这种情况呢
$(tableCont).empty();
$(tableCont).appendTo('table#songList');
$(tableCont).appendTo('table#songList');