1

初心者なので、JavaScript を学ぶために console.log と alert() をよく使います。興味のある Web サイトを見つけ、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");

これはどんな魔法ですか?

ここには 2 つの問題があります。

  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 に答える