2013-07-03 8 views
0

使用mouseup,我將多個值附加到數組中。將文本插入數組,然後附加到div - 在IE8中顯示div中的文本兩次

var myArray = []; 
$("#button").mouseup(function() {  

    myArray.push(" play contact sports"); 

]); 

然後用另一個按鈕

$("#button2").mouseup(function() {  

    $('#output').append(myArray+''); 

]); 

它在所有瀏覽器工作正常,除IE8那裏後點擊文本推的是兩次顯示附加到一個div。

play contact sports play contact sports 

沒有逗號。有人知道原因可能是什麼嗎?或者可能有效的替代方案?

+0

按鈕是否嵌套?也許這個事件正在冒泡。試試event.stopPropagation()來防止這種情況。只是一個想法。 – Hippocrates

回答

0

我不完全清楚你想做什麼,但是我會用你的元素包裹每個文本節點,並且更加明確你的數組到字符串轉換。同樣在您的點擊處理程序中,確保事件已停止:

$("#button2").mouseup(function(event) { 
    event.stopPropagation(); 
    event.preventDefault(); 
    $('<p></p>').html(myArray.join(',')).appendTo('#output'); 
    return false; 
}); 
+0

感謝您的想法,但不幸的是,它只是將兩個實例都包裝在一個p標籤中。這就是我想要做的 - 點擊後,將一些文本添加到數組中。然後,當單擊另一個按鈕時,將該數組的內容輸出到div中以顯示在屏幕上。正如我所說 - 它適用於所有瀏覽器,而不是IE8! –

+0

好的,那麼單獨的事件必須發射兩次。而不是事件處理程序運行兩次。嘗試使用'click'事件而不是'mouseup' – Tim

+0

再次感謝,不幸的是我最初嘗試過 - 然後嘗試使用.one()處理程序,並且仍然沒有快樂,恐怕。 –