在纯JavaScript中组合DOM事件

在纯JavaScript中组合DOM事件,javascript,dom-events,Javascript,Dom Events,我有一个网页与伪画布看到。当用户将光标悬停在圆圈上时,圆圈会随机更改颜色鼠标悬停事件。如何修改程序,使颜色仅在单击鼠标左键和光标位于圆圈上时才更改?单击+鼠标覆盖事件?目前我创建的单元格具有以下功能: function createCell() { var new_cell = document.createElement("DIV"), cell_circle = document.createElement("DIV"); new_cell.classList

我有一个网页与伪画布看到。当用户将光标悬停在圆圈上时,圆圈会随机更改颜色鼠标悬停事件。如何修改程序,使颜色仅在单击鼠标左键和光标位于圆圈上时才更改?单击+鼠标覆盖事件?目前我创建的单元格具有以下功能:

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;
}

您可以在回调函数中使用鼠标事件对象,并查看是否单击了鼠标按钮

new_cell.addEventListener("mouseover",  function (e) { 
   if(e.buttons !== 0)
   {
     //do cool stuff
   }
});

将鼠标悬停更改为单击。如果单击,mouseover始终为true;我希望能够用一次滑动来给几个圆圈上色,就像在Windows Paint中一样。如果我改为单击,那么一次只能给一个圆圈上色。我知道在jQuery中可以添加自定义事件并动态抛出它们。在纯JS中也可能出现同样的情况。