div onclick问题与基本的“LightsOut”脚本

时间:2013-12-14 07:06:44

标签: javascript html onclick

我只是在开发我的技能,并尝试创建一个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>

这种脚本可能要复杂得多,但我正在尝试。感谢投入。

http://jsfiddle.net/4bUnt/3/

1 个答案:

答案 0 :(得分:0)

好的,让它为你工作。在这里查看:

http://jsfiddle.net/4bUnt/6/

通常在给出答案时,我会提出解决方案并让该人重新编写代码,但在这种情况下,他们的代码有很多语法错误和各种问题,试图通过一个方法指出它们一,一步一步会非常繁琐,评论中的来回对话会过多。也许就是为什么到目前为止这个问题没有其他答案..无论如何,检查出来并从中学习,如果你找到了这个和解决方案和/或有用的答案,请选择这个作为答案或投票。谢谢。继续。祝好运! :)

$( 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");
     }

}); 

});