簡體   English   中英

點擊動作不會綁定

[英]click action won't bind

下面的代碼僅在我注釋掉點擊代碼時才起作用-即,如果我不注釋掉click事件處理程序,則懸停功能甚至不起作用,所以我知道這是罪魁禍首。 有什么問題的想法嗎?

非常感謝!

 $(document).ready(function() {

    /* helper function to main database querying function
       below. Figures out the number of activities needed
       for completeness. Takes the box's class name as an
       argument
    */
    var complete = function(arg) {
        switch(arg) {
            case "three":
                return 3;
            case "four":
                return 4;
            case "seven":
                return 7;
        }
    };


    // determine if we change color of box
    var changeColor = function(arg) {
        if (arg.hasClass("zero")) {
            arg.removeClass("zero").addClass("between");
        }
            else if (arg.hasClass("between")) {
                if (numComplete == toComplete) {
                    arg.removeClass("between").addClass("complete");
                } 
            }
    };


    // CHANGE BOX COLOR WHEN HOVERING OVER IT
    $(".innerBox").hover(function() {
            if ($(this).hasClass("zero")) {
                    $(this).addClass("innerBoxHoverGrey");
            }
            else if ($(this).hasClass("between")) {
                    $(this).addClass("innerBoxHoverYellow");
            } else {
                    $(this).addClass("innerBoxHoverGreen");
            }},

        function() {
            if ($(this).hasClass("innerBoxHoverGrey")) {
                $(this).removeClass("innerBoxHoverGrey");
            } else if ($(this).hasClass("innerBoxHoverYellow")) {
                $(this).removeClass("innerBoxHoverYellow");
            } else {
                $(this).removeClass("innerBoxHoverGreen");
            }
        }
    );


    // WHERE ALL THE JUICE IS - CLICK ON A BOX, CHECK WITH DATABASE
    $(".innerBox").bind("click", function() {

        // This is what we'll be passing to everything
        var className = $(this).attr("id");
        var numComplete;
        var toComplete;

        // DATA TO PASS 
        var data = {
            "val": className
        };

        // TAKE CARE OF TIME FIRST
        var recentlyCompleted = false;


        $.getJSON("time.php", function(result) {
            $.each(result, function(key, val)) {
                recentlyCompleted = val;
            };
        });

        /*
        if (!recentlyCompleted) {
            throw new Error("error");
        } else {

            // UPDATE ACTIVITY TABLE - not meant to return anything
            $.getJSON("updateActivityTable.php", data, function(newResult) {
                alert(newResult);
            });

            // UPDATE TIME TABLE - not meant to return anything
            $.getJSON("updateActivityTimeTable.php", data, function(newResult) {
                alert(newResult);
            });

            // UPDATE UI BASED ON ACTIVITIES COMPLETED
            var spanName = className + "Num";

            $.getJSON("getActivityNum.php", data, function(newResult) {
                    $.each(result, function(key, val)) {
                        $("#"+spanName).html(val);
                        numComplete = val;
                    }});


            // figure out how many activities means its
            //  complete
            toComplete = complete($(this).attr("class"));

            changeColor($(this));
        }*/ 
    }); 

})

綁定單擊事件中的每個循環中都有語法錯誤。 錯誤在這里: $.each(result, function (key, val)) {應該是,

$.getJSON("time.php", function(result) {
        $.each(result, function(key, val) {
            recentlyCompleted = val;
        });
    });

修復了由於“每個”語句附近括號放置錯誤而導致的錯誤。 謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM