我正在嘗試向用戶呈現圖片,他們可以選擇一張並添加到表格中。這很好,但是當我嘗試將另一個圖像添加到另一個表節點時,會再次生成完整列表。基本上,我想要一個圖像選擇器。我知道img.onclick每次點擊時都會建立圖片列表,但我無法理解它。我已經嘗試過從數組中選擇僅顯示一次的圖像
var element = document.getElementById("menu");
element.parentNode.removeChild(element);
方法嘗試和每次調用事件時刪除附加的div,但它不適用於我。一直努力工作了一段時間,所有的幫助真的很感激。
function addImage(col) {
var img = new Image();
img.src = "../www/images/TEST.png";
col.appendChild(img);
img.onclick = function() {
var myImages = new Array();
myImages[0] = "../www/images/TEST3.png";
myImages[1] = "../www/images/TEST2.png";
myImages[2] = "../www/images/TEST4.png";
for (var i = 0; i < myImages.length; i++) {
var allImages = new Image();
allImages.src = myImages[i];
var my_div = document.createElement("div");
my_div.id = "showPics";
document.body.appendChild(my_div);
newList = document.createElement("ul");
newList.appendChild(allImages);
my_div.appendChild(newList);
my_div.style.display = 'block';
allImages.onclick = function (e) {
img.src = e.target.src;
my_div.style.display = 'none';
};
}
};
}
for (r = 0; r < howOften; r++) {
row = table.insertRow(-1);
for (c = 0; c < numDays; c++) {
col = row.insertCell(-1);
addImage(col);
}
}
document.getElementById('holdTable').appendChild(table);
你有一個jsfiddle片段來理解你想完成什麼嗎?我可以從代碼中看到的第一件事情是:在第一個循環的閉包中使用my_div會導致bug,因爲JS在函數級別處理範圍,並且閉包將捕獲對my_div的引用......這意味着您可以獲得當循環結束時錯誤的對象 – Diego
嗨迭戈,經過大量的混亂之後,我決定回到整個事情的繪圖板。我現在要將圖像存儲在html中的div中,並嘗試通過jQuery添加功能。我真的不知道jQuery(或者JavaScript),所以我可能花一點時間來閱讀如何使用點擊,正確的語法等。也許你可以告訴我這是否是一種更好的方法?我很享受挑戰,但真的需要繼續前進。 – Inkers
我已經做了JSfiddle的問題。希望這是正確的方式。 http://jsfiddle.net/Inkers/NyxCu/。希望你能看到我想要的。代碼運行並按照它在首次點擊節點時所做的操作,但第二次它會再次添加圖像選擇列表。 – Inkers