1

作为一个新手,我在尝试学习 JavaScript 时经常使用 console.log 和 alert()。我找到了一个我感兴趣的网站,并将 html 和 javascript/jquery 复制到我的本地主机上来玩弄它。当我将 console.log() 和 alert 语句放入 javascript 以帮助解决问题时,它们都不起作用。我在多个浏览器(Chrome、Safari、Firefox)中尝试过这个,删除浏览器历史等。对我来说,代码没有什么不寻常的。有什么我可能会丢失的吗?代码运行良好(控制台中没有记录错误)。

顺便说一句,我将它复制到我的本地主机上,因为我不知道如何在 Firebug 中添加控制台日志。有没有办法这样做?我从 console.log 获得更多信息(我理解)而不是设置断点。

这是代码。这显然相当简单(尽管我仍然需要 console.log 才能完全得到它)。

// Global variables
var flag;
var dark;

$(document).ready(function() {
// $(function() {

    // Hide all closed sections
    $(".closed").next().hide();

    // Add slide functions to all sections (h1 elements)
    $("h1").click(function () {
        if($(this).is('.closed')) {
            $(".open").delay(200, function() { $(this).next().slideUp("slow"); });
            $(this).delay(200, function() { $(this).next().slideDown("slow"); });
            $("h1").deactivateElement();
            $(this).activateElement();
        }
        else if($(this).is('.open')) {
            $(this).delay(200, function() { $(this).next().slideUp("slow"); });
            $(this).deactivateElement();
        }
    });

    // Add a function to toggle the CSS styles
    $("a#style_switcher").click(function () { flag = !flag; dark.disabled = flag; });

    // Add hover functions to all sections (h1 elements)
    $("h1").hover(function() { $(this).addClass('hover'); }, function() { $(this).removeClass('hover'); });


    // Delay the call to (slide) functions
    // => http://james.padolsey.com/javascript/jquery-delay-plugin/
    $.fn.delay = function(time, callback) {
        jQuery.fx.step.delay = function() {};
        return this.animate( { delay: 1 }, time, callback);
    }

    // Set an element class to 'open' or 'closed'
    $.fn.activateElement = function() { switchClasses($(this), 'open', 'closed'); }
    $.fn.deactivateElement = function() { switchClasses($(this), 'closed', 'open'); }

    // Do this at start
     initialize(console.log("farting"));
      alert("hi");

    $(".who").delay(600, function() { $(this).next().slideDown("slow"); });
     $(".who").activateElement();
});


// Initialization function
function initialize () {
    flag = true;
    dark = document.getElementById("dark_css");
    dark.disabled = flag;



    // Set year in copyright section
    document.getElementById('year').innerHTML = (new Date()).getFullYear();
}

// Utility function for switching/toggling classes
function switchClasses (element, classToAdd, classToRemove) {



    element.addClass(classToAdd);
    element.removeClass(classToRemove);
    // De/Activate the given element
    (classToAdd == 'open') ? element.addClass('active') : element.removeClass('active');
}
4

3 回答 3

1

针对您的标题,这是:

window.alert = function () { }
alert('hi');

不触发。

于 2012-11-18T02:20:02.737 回答
0
initialize(console.log("farting"));
alert("hi");

这是什么魔法?

这里有两个问题:

  1. 您将参数传递给function initialize () {语法错误的无参数函数,您不能指望该语句执行您想要的操作。

  2. alert是一个未定义的函数,您可能是这样想的,window.alert但它应该足以console.log代替使用,因为前一页提到没有兼容性图表:

    DOM 级别 0。不属于任何标准。

    因此,console.log建议使用它,因为它至少提供了一个兼容性图表。

    尝试放置一条console.log("hi");自己的线路。

不过,真正的交易是学习断点

于 2012-11-18T02:09:08.930 回答
0

我建议您使用控制台本身来执行这些测试并运行一些“示例代码”Chrome 控制台: https ://developers.google.com/chrome-developer-tools/docs/console

于 2012-11-18T02:12:49.837 回答