tôi đang cố gắng để thực hiện một dự án tictactoe trong jQuery và tôi đang gặp một vấn đề lớn ...
Các gạch đang <td>
thẻ và tôi đang cố gắng để làm cho nó để khi người dùng nhấp vào gạch, nó gọi là "đánh dấu" chức năng.
Nếu bây giờ chúng ta nhìn vào chức năng "được đánh dấu", $(this)
được dự định là nút <td>
mà chức năng được gọi.
Tuy nhiên, nó không làm bất cứ điều gì vì vậy tôi đã kiểm tra giao diện điều khiển và dường như $(this)
chứa đối tượng Cửa sổ DOM.
Tôi có thể gửi đúng loại $(this)
cho hàm "được đánh dấu" không?
Cảm ơn bạn!
<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");
}
Bạn có muốn vượt qua trong toàn bộ mảng (ví dụ: 'listCells') hay chỉ là ô trong bảng bạn nhấp vào? - Nếu chỉ td bạn nhấp vào bạn có thể sử dụng '$ (" td "). Click (function() {đánh dấu ($ (this))});' trong sự kiện click của bạn .. – Greg