我只是在开发我的技能,并尝试创建一个js应用程序来执行您之前可能已经看过的“Lights Out游戏”类型的脚本。没什么复杂的。或者我想。这个想法是你从一个黑暗的灯光网格开始,如果你点击一个按钮,它切换点击按钮的状态以及那个按钮的NSEW。单击正确的序列后,所有灯都会亮起。我的问题基本上是我创建的div没有注册点击事件。
function lightUp(){
$("div.light").click(function(){
var thisDiv = $(this).attr("id");
var topDiv = null;
var bottomDiv = null;
var leftDiv = null;
var rightDiv = null;
for (i= 1; 4; i++){
for (j=1; 4; j++){
var testDiv = "r"+i+"c"+j;
if (testDiv === thisDiv) {
if (i > 1) {
topDiv = "r"+(i-1)+"c"+j;
}
if (i < 4) {
bottomDiv = "r"+(i+1)+"c"+j;
}
if (j > 1) {
leftDiv = "r"+i+"c"+(j-1);
}
if (j < 4) {
rightDiv = "r"+i+"c"+(j+1);
}
}
}
}
$("#"+thisDiv, "#"+topDiv, "#"+bottomDiv, "#"+leftDiv, "#"+rightDiv).toggleClass("on").toggleClass("off");
});
}
未注册div上的点击次数。
<div id="r2c3" class="light off" onclick="lightUp();"></div>
这种脚本可能要复杂得多,但我正在尝试。感谢投入。
答案 0 :(得分:0)
好的,让它为你工作。在这里查看:
通常在给出答案时,我会提出解决方案并让该人重新编写代码,但在这种情况下,他们的代码有很多语法错误和各种问题,试图通过一个方法指出它们一,一步一步会非常繁琐,评论中的来回对话会过多。也许就是为什么到目前为止这个问题没有其他答案..无论如何,检查出来并从中学习,如果你找到了这个和解决方案和/或有用的答案,请选择这个作为答案或投票。谢谢。继续。祝好运! :)
$( document ).ready(function() {
$("div.light").click(function(){
var thisDiv = $(this).attr("id");
var topDiv = null;
var bottomDiv = null;
var leftDiv = null;
var rightDiv = null;
for (var i= 1; i<5; i++){
for (var j=1; j<5; j++){
var testDiv = "r"+i+"c"+j;
if (testDiv === thisDiv) {
if (i > 1) {
topDiv = "r"+(i-1)+"c"+j;
}
if (i < 4) {
bottomDiv = "r"+(i+1)+"c"+j;
}
if (j > 1) {
leftDiv = "r"+i+"c"+(j-1);
}
if (j < 4) {
rightDiv = "r"+i+"c"+(j+1);
}
}
}
}
if ($("#"+thisDiv).hasClass("off")) {
$("#"+thisDiv).removeClass("off").addClass("on");
$("#"+topDiv).removeClass("off").addClass("on");
$("#"+bottomDiv).removeClass("off").addClass("on");
$("#"+leftDiv).removeClass("off").addClass("on");
$("#"+rightDiv).removeClass("off").addClass("on");
} else {
$("#"+thisDiv).removeClass("on").addClass("off");
$("#"+topDiv).removeClass("on").addClass("off");
$("#"+bottomDiv).removeClass("on").addClass("off");
$("#"+leftDiv).removeClass("on").addClass("off");
$("#"+rightDiv).removeClass("on").addClass("off");
}
});
});