2017-08-06 67 views
0

我有一个伪帆布的网页(请参阅https://jsfiddle.net/memeladon/vff01jq6/)。当用户将光标悬停在鼠标上时,圆圈会随机更改颜色(鼠标悬停事件)。如何修改程序,使颜色只在鼠标单击并且光标位于圆上时才会改变(单击+鼠标悬停事件)?目前,我创建细胞这样的功能:在纯JavaScript中组合DOM事件

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

变化*鼠标悬停*到* *点击。如果它被* clicked *,mouseover总是为真;) –

+0

我想用一个“滑动”就可以为几个圆圈着色,就像在Windows Paint中一样。如果我更改为_click_,则一次只能为一个圆圈着色。 – memeladon

+0

我知道在jQuery中,您可以添加自定义事件并动态引发它们。纯JS可能也是如此。 – OldBunny2800

回答

1

你可以使用鼠标事件对象在回调函数,看看鼠标按钮被点击

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