在Firefox中显示重复记录

时间:2009-09-24 12:10:56

标签: javascript html javascript-events queue

我正在网上音乐商店工作。有像myplaylists,mydownloads等按钮...... 单击这些按钮时,歌曲列表会相应地显示在网格视图中 问题是,当我快速点击按钮两次时,列表会出现两次,如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');
}

2 个答案:

答案 0 :(得分: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);
  }
});

答案 1 :(得分:0)

尝试

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

而不是

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