Sto cercando di fare un progetto tictactoe in jQuery e sto avendo un grosso problema ...
Le piastrelle sono in <td>
tag e sto cercando di fallo in modo che quando l'utente fa clic sul riquadro, chiami la funzione "contrassegnata".
Se esaminiamo la funzione "contrassegnata", $(this)
è il nodo <td>
da cui è stata chiamata la funzione.
Tuttavia, non stava facendo nulla quindi ho controllato la console e apparentemente $(this)
conteneva l'oggetto Finestra DOM.
Esiste comunque la possibilità di inviare il tipo corretto di $(this)
alla funzione "contrassegnata"?
Grazie!
<script type="text/javascript">
var TURN_X = false;
var TURN_O = true;
var turn = false; // this is to see whos turn it is.
$(document).ready(function(){
var listCells = $.makeArray($("td"));
$("td").click(function(){marked(listCells)}); //THIS IS WHERE I HAVE PROBLEMS
return false;
});
function marked(arr)
{
console.log($(this)); // THIS CONSOLE LOG RETURNS "DOM Window"
$(this).addClass("marked");
if(turn == TURN_X)
{
this.innerHTML = "X";
turn = false;
}
else
this.innerHTML = "O";
var tileNum = $(this).attr("id");
}
Vuoi passare l'intero array (vale a dire 'listCells') o solo la cella di tabella si è fatto clic su? - Se solo il td su cui hai cliccato potresti usare '$ (" td "). Click (function() {marked ($ (this))});' nel tuo evento click .. – Greg