第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在單擊 JS 生成的特定元素時添加顏色

如何在單擊 JS 生成的特定元素時添加顏色

紫衣仙女 2023-03-18 16:23:28
我正在使用 HTML、CSS 和 vanilla JS 創(chuàng)建一個像素藝術(shù)制作工具。大部分時間我都創(chuàng)建了 UI,但我無法使用該功能。我試過了:let cell = document.body.querySelectorAll('.grid-square');cell.addEventListener('click', function() {? ? cell.style.backgroundColor = 'red';});但是我的頁面“addEventListener”不是一個函數(shù)。如何讓我的 JS 在 HTML 之后加載,以便我可以讓它工作?
查看完整描述

2 回答

?
慕姐8265434

TA貢獻(xiàn)1813條經(jīng)驗 獲得超2個贊

let cells = document.body.querySelectorAll('.grid-square'); // querySelectorAll return all elements which have grid-square class.


for(let i = 0; i < cells.length; i++){

        cells[i].addEventListener('click', function(){

            cells[i].style.backgroundColor = "red";

    });

}


查看完整回答
反對 回復(fù) 2023-03-18
?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗 獲得超5個贊

只需 2 個步驟即可使此工作正常進(jìn)行:


querySelectorAll返回一個元素數(shù)組,因此您需要遍歷它們以將偵聽器添加到每個單元格:

function setUpCellListeners(){

? ? let cells = document.querySelectorAll('.grid-square');

? ? cells.forEach((cell) => {

? ? ? ? cell.addEventListener('click', function() {

? ? ? ? ? ? cell.style.backgroundColor = 'red';

? ? ? ? });

? ?});

}

您需要在創(chuàng)建單元格后執(zhí)行此操作。它們是在createGrid函數(shù)中創(chuàng)建的,因此我們可以通過在該函數(shù)的末尾調(diào)用它來實現(xiàn):

//function to build the grid based on user input

function createGrid(height = 25, width = 25) {


? ? /* code to set up grid.... */


? ? // NOW we can set up our listeners because our grid is created

? ? setUpCellListeners();

}

工作示例:


let canvas = document.querySelector('.canvas');

let button = document.querySelector('button');

let high;

let wide;

let color = document.querySelector('.colorChoice').value;



function setUpCellListeners(){

? ? let cells = document.querySelectorAll('.grid-square');

? ? cells.forEach((cell) => {

? ? ? ?cell.addEventListener('click', function() {

? ? ? ? ? ?cell.style.backgroundColor = 'red';

? ? ? ?});

? ? });

}



//function to build the grid based on user input

function createGrid(height = 25, width = 25) {

? ? canvas.innerHTML = '';

? ? for (let i = 0; i < height; i++) {

? ? ? ? let row = document.createElement('div');

? ? ? ? row.classList.add('row');

? ? ? ? canvas.appendChild(row);

? ? ? ? for (let j = 0; j < width; j++) {

? ? ? ? ? ? let cell = document.createElement('div');

? ? ? ? ? ? cell.classList.add('grid-square');

? ? ? ? ? ? row.appendChild(cell);

? ? ? ? }

? ? }

? ? setUpCellListeners();

}


//listens for input of rows and columns

button.addEventListener('click', function() {

? ? high = parseInt(document.querySelector('.column-input').value);

? ? wide = parseInt(document.querySelector('.row-input').value);

? ? if (Number.isNaN(high) || Number.isNaN(wide)) {

? ? ? ? createGrid();

? ? } else {

? ? ? ? createGrid(wide, high);

? ? }

});

//Default grid built on load

window.onload = createGrid(25, 25);

.grid-square {

? ? height: 12px;

? ? width: 12px;

? ? border: 1px black solid;

}


.row {

? ? display: flex;

? ? justify-content: center;

}


.canvas {

? ? max-height: inherit;

? ? max-width: 75%;

}

? ?<!-- Bootstrap CSS -->

? ? <link rel="stylesheet" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">

? ??

? ? <!-- Navbar -->

? ? <nav class="navbar navbar-dark bg-dark">

? ? ? ? <span class="navbar-brand mb-0 h1 mx-auto navbar-brand">Pixel Art Maker</span>

? ? </nav>


? ? <!-- Container to put grid in -->

? ? <div class="container shadow p-3 mb-5 bg-white rounded mt-5 main">

? ? ??

? ? ? <div class="container canvas d-flex-inline">

? ? ? ??

? ? ? </div>


? ? ? <form class="d-flex-inline w-50 mx-auto">

? ? ? ? <div class="d-flex">

? ? ? ? ? <div class="form-group w-25 ml-auto mr-2">

? ? ? ? ? ? <label class="d-block text-center" for="gridRows">Rows</label>

? ? ? ? ? ? <input type="number" class="form-control row-input" id="gridRows">

? ? ? ? ? </div>

? ? ? ? ? <div class="form-group w-25 mr-auto ml-2">

? ? ? ? ? ? <label class="d-block text-center" for="gridColumns">Columns</label>

? ? ? ? ? ? <input type="number" class="form-control column-input" id="gridColumns">

? ? ? ? ? </div>

? ? ? ? </div>??

? ? ? ? </form>

? ? ? ? <div class="form-group w-25 mx-auto">

? ? ? ? ? <button type="submit" class="btn btn-primary w-100">Submit</button>

? ? ? ? </div>

? ? ? <form class="d-flex-inline w-50 mx-auto">

? ? ? ? <div class="form-group w-25 mx-auto">

? ? ? ? ? <label for="color">Color</label>

? ? ? ? ? <input type="color" class="form-control colorChoice" id="color">

? ? ? ? </div>

? ? ? </form>

? ? </div>


<!-- Optional JavaScript -->

? ? <!-- jQuery first, then Popper.js, then Bootstrap JS, then local JS -->

? ? <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>

? ? <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>

? ? <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>


查看完整回答
反對 回復(fù) 2023-03-18
  • 2 回答
  • 0 關(guān)注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號