mousedown事件的{javascript匿名函数

时间:2018-04-17 16:42:52

标签: javascript

我已经堆了一天了。请帮忙!我发布了我想在底部做的事情。

function setupPuzzle() {
    allCells = document.querySelectorAll("table#hitoriGrid td");

    for (var i = 0; i < allCells.length; i++) {
        allCells[i].style.backgroundColor = "white";

        allCells[i].style.color = "black";

        allCells[i].style.borderRadius = "0";

        allCells[i].addEventListener("mousedown", 
        function(evt) {
            if (evt.shiftKey) {
                allCells[i].style.backgroundColor = "white";
                allCells[i].style.color = "black";
                allCells[i].style.borderRadius = "0";
            } 
            else if (evt.altKey) {
                allCells[i].style.backgroundColor = "black";
                allCells[i].style.color = "white";
                allCells[i].style.borderRadius = "0";
            }
            else {
                allCells[i].style.backgroundColor = "rgb(101, 101, 101)";
                allCells[i].style.color = "white";
                allCells[i].style.borderRadius = "50%";
            }

        });
        evt.preventDefault();

        allCells[i].addEventListener("mouseover", 
        function(evt) {
            if(evt.shiftKey) {
                allCells[i].style.cursor = "url(jpf_eraser.png), alias";
            } else if (evt.altKey) {
                allCells[i].style.cursor = "url(jpf_block.png), cell";
            } else {
                allCells[i].style.cursor = "url(jpf_circle.png), pointer"
            }
        });

        allCells[i].addEventListener("mouseup", checkSolution);
    }
}

在for循环中,为allCells集合中的每个单元格添加一个mousedown事件侦听器,根据用户是否按下Shift键,Alt键或无键来更改单元格的外观。将以下命令添加到mousedown事件的匿名函数中:

如果用户按Shift键,则将背景颜色更改为白色,将字体颜色更改为黑色,将边框半径更改为0。 如果用户按下Alt键,将背景颜色更改为黑色,将字体颜色更改为白色,将边框半径更改为0。 否则,将背景颜色更改为rgb(101,101,101),将字体颜色更改为白色,将边框半径更改为50%。 为避免无意中选择表格单元格的文本,请包含一个命令以防止浏览器响应mousedown事件的默认操作。 Rebecca需要一个不同的鼠标光标,具体取决于当鼠标指针在拼图单元格上方移动时,用户是按Shift键,Alt键还是无键。在for循环中,为每个运行匿名函数

的拼图单元添加一个mouseover事件侦听器

如果用户按下Shift键,则将光标更改为jpf_eraser.png图像或名为“alias”的通用光标。 如果用户按下Alt键,则将光标更改为jpf_block.png图像或名为“cell”的通用光标。 否则,将光标更改为jpf_circle.png图像或名为“pointer”的通用游标。 最后,在for循环中,添加一个事件监听器来运行checkSolution()函数以响应mouseup事件,以测试用户是否已经解决了这个难题

0 个答案:

没有答案