我在我自己的圖像瀏覽器中建立一個函數,當用戶將光標懸停在某個圖像的div上時,創建並顯示一個刪除按鈕,並在用戶將鼠標懸停時隱藏按鈕的div。動態添加按鈕上點擊不起作用
這是代碼:
function displayImages() {
//run through array of images
for (a = 0; a < images.length; a++) {
var container = document.createElement('div');
container.id = 'container'+images[a];
container.style.width = 120;
container.style.backgroundColor = '#e9e9e9';
container.style.height = 140;
container.style.margin = 5;
container.style.display = 'inline-block';
container.style.float = 'left';
var imageID = images[a];
container.onmouseover = function() {imageRollover(this)};
container.onmouseout = function() {imageMouseOut(this)};
}
}
function imageRollover(image) {
var trashcan = document.createElement('BUTTON');
trashcan.id = 'trash'+image.id;
trashcan.className = 'deleteButton';
trashcan.onclick = function() {deleteImage(image.id);};
document.getElementById(image.id).appendChild(trashcan);
}
function imageMouseOut(image) {
document.getElementById(image.id).removeChild(document.getElementById('trash'+image.id));
}
function deleteImage(image) {
alert(image);
}
我的問題是,當我點擊trashcan
,它調用什麼。我已經嘗試通常添加onlick事件: trashcan.onclick = deleteImage(image.id);
但是,然後,由於某種原因,當我將鼠標懸停在container
上時,會調用該函數。
如何確保點擊事件中的動態添加滾動按鈕的工作?
該功能可以在DE查看:http://www.imaginedigital.nl/CMS/Editor/ImagePicker.html或http://jsfiddle.net/f239ymos/
任何幫助將高度讚賞。
控制檯中的錯誤消息?也許你想要trashcan.onclick = function(){deleteImage('''+ image.id +'''');};此外,如果圖像是一個'img'標籤,你不能有一個孩子 – mplungjan 2014-09-19 13:19:47
你可以提供一個jsfiddle嗎? – Alexandros 2014-09-19 13:22:42
圖像以3格顯示:1個容器,一個圖像預覽,它是一個img標籤,另一個div顯示圖像名稱。 de容器是實際創建孩子的div,因此不會導致問題。 – Joris416 2014-09-19 13:22:57