Я создаю функцию в своем собственном браузере изображений, который создает и отображает кнопку удаления, когда пользователь наводит курсор на 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
.
Как я могу убедиться, что на событиях щелчка для динамически добавленных кнопок опрокидывания работают?
Функция может де просмотрены на: http://www.imaginedigital.nl/CMS/Editor/ImagePicker.html или http://jsfiddle.net/f239ymos/
Любая помощь будет высоко оценен.
Сообщения об ошибках в консоли? Возможно, вам нужен trashcan.onclick = function() {deleteImage ('"' + image.id + '"');}; Также, если изображение является тегом 'img', у вас не может быть ребенка – mplungjan
вы можете предоставить jsfiddle? – Alexandros
изображение отображается в 3 divs: 1 контейнер, один предварительный просмотр изображения, который является тегом img, и другой div, который отображает имя изображения. de container - это div, который фактически создает дочерний элемент, так что это не может вызвать проблему. – Joris416