Comme vous pouvez le voir, mes cellules ont un background-image.
Je voudrais que, lorsque que je clique sur une cellule de mon tableau, ce background-image(Capture_16) se change en background-image(Capture17). Etant débutant dans le web, j'ai un peu de mal avec JS. Auriez-vous une idée de fonction JS pour effectué ce changement de background ?
un tableau HTML n'est probablement le bon élément pour ça, mais ici n'est pas la question.
Ce que je suggère, plutôt que de changer le background est d'ajouter ou enlever une classe sur les cases cliquées - par exemple ajouter ou enlever "water", si je saisis bien le concept de nurikabe
> Je ne vois pas quel autre moyen qu'un tableau HTML je pourrai utiliser pour la grille de jeu.
Plusieurs div/span (contenant des boutons, pour l'interactivité) à la suite, et stylées de manière à apparaître en carré, avec flex ou grid, par exemple.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
Lorsque que je clique sur une cellule de mon tableau, TOUTES les cellules changent de classe, OR je souhaite que cela soit uniquement la cellule dans laquelle j'ai cliqué qui change.
Voici mon js :
// Créer la rivière
function river(){
$(".grass").toggleClass('water');
}
.grass est la classe attribuée à toutes mes cellules de tableau.
<tr>
<td class ="grass" onclick="river()">2</td>
<td class ="grass" onclick="river()"></td>
<td class ="grass" onclick="river()"></td>
<td class ="grass" onclick="river()"></td>
<td class ="grass" onclick="river()"></td>
<td class ="grass" onclick="river()"></td>
<td class ="grass" onclick="river()"></td>
</tr>
Désolé du décalage
Et oui, j'utilise jQuery. Je n'ai pas trop compris les méthodes de ton lien.
déjà, onclick, on oublie c'est sale. On va utiliser des écouteurs (listeners). Ça permet de sortir le JS du HTML, c'est plus séparé, plus facilement maintenable.
Avec jQuery c'est comme ça :
$('.grass').on('click', river);
Et il faut modifier un peu river, pour lui indiquer ce sur quoi on a cliqué - parce que c'est ça, le problème ici. Normalement, $(this) devrait faire l'affaire. Du coup, ça donnerait :
function river(){
$(this).toggleClass('water');
}
Je fais de mémoire, il faut que tu testes pour vérifier que c'est ok.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
EDIT : Lorsque je mets ceci dans mon js, rien ne se passe !
Je continue à chercher !
EDIT 2 : J'ai réussi ! avec ceci
function river(td)
{
if (td.className === "grass")
td.className = "water";
else
td.className = "grass";
}
et ça
<td class ="grass" onclick="river(this)"></td>
<td class ="grass" onclick="river(this)"></td>
<td class ="grass" onclick="river(this)"></td>
<td class ="grass" onclick="river(this)"></td>
<td class ="grass" onclick="river(this)">2</td>
<td class ="grass" onclick="river(this)"></td>
<td class ="grass" onclick="river(this)"></td>
J'avais déjà essayé cette méthode, mais je n'avais pas mit le "this"
Merci d'avoir pris le temps de m'aider !
- Edité par Clermoe 17 janvier 2019 à 17:08:18
C.R
Changement image de cellule Table avec onclick
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
C.R
Pas d'aide concernant le code par MP, le forum est là pour ça :)
C.R
Pas d'aide concernant le code par MP, le forum est là pour ça :)
C.R
C.R
Pas d'aide concernant le code par MP, le forum est là pour ça :)
C.R
Pas d'aide concernant le code par MP, le forum est là pour ça :)
C.R