W związku z następującym kodem, jak powinienem zakończyć tileClick()
, aby zmienić kliknięty obraz z "tileBack.jpg", aby zamiast tego wyświetlić obraz przypisany do tego konkretnego div
w shuffleDeck()
? Chodzi mi o to, że funkcja tileClick()
ma pobrać kafelek, który aktualnie pokazuje obraz tileBack, a po kliknięciu pokazuje obraz znajdujący się na "odwróconej stronie" tego kafelka.JavaScript do zmiany this.style.backgroundImage
Do tej pory można zobaczyć, jak próbowałem skierować konkretny klikiet, ale nie jestem pewien, czy w tym miejscu jest używane poprawnie this.
. Po drugiej stronie tego oświadczenia, próbowałem robić rzeczy takie jak = "../img/tile_"+tiles[i]+".png";
, ale oczywiście problem polega na tym, że i
nie istnieje w zasięgu tej funkcji. Moim problemem jest to, że nie mogę wymyślić, jak zrestrukturyzować mój kod, aby uzyskać dostęp do obrazu, który wcześniej został przypisany do danego div
. Dla odniesienia "druga strona" płytek jest nazywana "tile _ ##. Png", gdzie "##" jest 2-cyfrową liczbą (01-12).
Jestem bardzo nowy w JS i programowaniu w ogólności, więc prosimy o zachowanie na tyle prostych odpowiedzi, żebym mógł je zrozumieć i wdrożyć.
var deck = [];
var tiles = [];
var sources = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ];
var images = [];
const WIDTH = 100;
const HEIGHT = 100;
const NUMTILES = 24;
loadImages();
buildDeck();
shuffleDeck(7);
printDeck();
function loadImages() {
for (var i = 0; i < sources.length; i++) {
images[i] = "../img/tile_"+sources[i]+".png";
}
}
function buildDeck() {
for (var i = 0; i < 2; i++) {
for (var j = 0; j < sources.length; j++) {
var tempTile = {};
tempTile.val = sources[j];
tempTile.img = images[j];
deck.push(tempTile);
}
}
}
function shuffleDeck (numTimes) {
for (var i = 0; i < numTimes; i++) {
for (var j = 0; j < deck.length; j++) {
var tempTile = deck[j];
var randI = j;
while (randI == j) {
randI = Math.floor(Math.random() * deck.length);
}
deck[j] = deck[randI];
deck[randI] = tempTile;
}
}
}
function printDeck() {
for (var i = 0; i < NUMTILES; i++) {
tiles[i] = document.getElementById("tile"+i);
console.log(deck[i].img);
tiles[i].style.backgroundImage = "../img/tileBack.jpg";
}
}
function tileClick() {
document.querySelector(".tile").addEventListener("mousedown", function() {
this.style.backgroundImage =
});
}
JS Fiddle Link: http://jsfiddle.net/Leor6jqr/
'Jestem bardzo nowy w JS i programowaniu w ogóle" i napisałeś ten zgrabny kawałek kodu? Dobra droga! –
Czy możesz zrobić [JSFiddle] (http://jsfiddle.net/), abyśmy mogli eksperymentować? – howderek
@howderek Tak, zrobię teraz skrzypce JS. –