2017-08-06 69 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 
    } 
});