Объединение DOM-событий в чистом JavaScript
У меня есть веб-страница с псевдо-холстом (см. https://jsfiddle.net/memeladon/vff01jq6/). Круги случайным образом меняют свой цвет, когда пользователь наводит на них курсор (событие наведения мыши). Как я могу изменить программу так, чтобы цвета менялись только при щелчке левой кнопкой мыши и наведении курсора на круг (события click + mouseover)? В настоящее время я создаю ячейки с такой функцией:
function createCell() {
var new_cell = document.createElement("DIV"),
cell_circle = document.createElement("DIV");
new_cell.classList.add("paint-cell");
cell_circle.classList.add("paint-cell__circle");
new_cell.appendChild(cell_circle);
new_cell.addEventListener("mouseover", function () { changeColor(cell_circle); });
return new_cell;
}
1 ответ
Решение
Вы можете использовать объект события мыши в функции обратного вызова и посмотреть, нажата ли кнопка мыши
new_cell.addEventListener("mouseover", function (e) {
if(e.buttons !== 0)
{
//do cool stuff
}
});