2012-06-15 113 views
0

我用追加添加其他的div添加與追加出現兩次

$('#'+ number).append('<div id="descc'+number+'" class="backgroundImage" style="font-size:10px; height:13px; color:#fff; background-color:#000;" align="center">'+ descA+'</div>'); 

出現DIV兩次和remove()不工作,任何想法?

function getDesc(number) { 
    $.getJSON('getDescription.php?number=' + number, function(des) { 
     descA = des; 
     $('#' + number).append('<div id="descc' + number + '" class="backgroundImage" style="font-size:10px; height:13px; color:#fff; background-color:#000;" align="center">' + descA + '</div>'); 
    }); 
} 

function cargarProyectos(cant, col) { 
    for (i = 1; i <= cant; i++) { 
     $('#proyectos').append('<div class="backgroundImage" id="' + i + '" style="position:relative; float:left; width:186px; height:150px; background-image: url(../CMS/_class/image.php?id=' + i + '); margin-top: 10px;margin-right:10px; margin-bottom:10px; cursor:hand;"></div>'); 
     $('#' + i).html('<div class="backgroundImage" style="font-size:10px; height:13px; color:#fff; background-color:#000;" align="center">PROYECTO ' + i + '</div>'); 
     getDesc(i); 
     if (!(i % col) && i != 1) { 
      $('#proyectos').append('<div class="scroll" id="detalle' + Math.floor((i/col)) + '" style="position:relative; white-space: nowrap;display:none; width:100%; height:0px; background-color:#e8e8e8; margin-bottom:10px;">   </div>'); 
     } else if (i == cant) { 
      $('#proyectos').append('<div class="scroll" id="detalle' + Math.floor((i/col) + 1) + '" style="position:relative; display:none;white-space: nowrap; width:100%; height:0px; background-color:#e8e8e8; margin-bottom:10px;"></div>'); 
     } 
    } 
} 

function windowSize() { 
    winW = $('#proyectos').width(); 
    posicionDetalle = Math.floor(winW/160); 
    for (i = 1; i <= cantProyectos; i++) { 
     $('#descc' + i).remove(); 
     $('#' + i).remove(); 
     if (i == cantProyectos) { 
      cargarProyectos(cantProyectos, posicionDetalle); 
     } 
    } 
    attachClickEvent(); 
} 
+0

請添加更多相關代碼。 –

+0

請添加完整的代碼,以便我們可以查看發生了什麼 –

+2

需要相關的HTML。 jsfiddle.net中的一個例子也會有所幫助。 –

回答

1

考慮到你接受了一些想法,這裏是我的。我猜測,因爲我們沒有HTML也我們不知道你在哪裏調用哪個函數。

但名稱windowSize()暗示我可能會調用窗口調整大小,尤其是您正在使用當前窗口大小。

這使我更加確信你必須在resize()中調用它。因此,它有時可能會被調用兩次(這個數字實際上沒有保證,它當然取決於正在使用的瀏覽器) - 這可能就是它。

要解決您的問題,只是在決定添加它之前檢查它是否存在。

同樣在你的windowSize()方法中,下面的測試在for循環中是不必要的 - 將它移到for循環之外(在放下if語句的路上),將它放在它之後。

if (i == cantProyectos) { 
     cargarProyectos(cantProyectos, posicionDetalle); 
    }