2

これは機能します:

$(function(){

    $.ajax({
      url: 'http://files.main.bloggerstop.net/uploads/3/0/2/5/3025338/snowstorm.js',
      async: false,
      dataType: "script",
    });

});

ただし、これはしません:

$("a#trigger").click(function(){

    $.ajax({
      url: 'http://files.main.bloggerstop.net/uploads/3/0/2/5/3025338/snowstorm.js',
      async: false,
      dataType: "script",
    });

});

これはサイト (私のものではない) の季節的なハックであるため、完璧である必要はありません。クリック時に外部の .js ファイルをロードできるようにする必要があります。

ありがとう :)。

4

2 に答える 2

3

「DOM Ready」コードを削除しました。元に戻すと、再び機能するはずです。

$(function() {
    $("a#trigger").click(function(){

        $.ajax({
          url: 'http://files.main.bloggerstop.net/uploads/3/0/2/5/3025338/snowstorm.js',
          async: false,
          dataType: "script",
        });

    });
});

スクリプトをページの上部に配置すると、ページの残りの部分が読み込まれるのを待たずに、スクリプトがすぐに実行されます。

ハンドラーを DOM Ready ハンドラーにバインドすると、ドキュメントが読み込まれるまで実行されません。

また、セレクターがターゲット要素と正しく一致していることを確認してください。

于 2012-12-13T03:40:42.190 に答える
0

私はあなたのデモを試しましたが、問題はコード自体で説明されています:

デフォルトでは body onload() の後に初期化します (一番下の addEventHandler() 呼び出しを介して)。snowStorm.snowStick = false;

問題は、2 番目のシナリオでは、ページの読み込みが完了した後にスクリプトを読み込むため、スクリプトが初期化されないことです。

[更新] ライブデモをセットアップしました。比較:

両者の唯一の違いは、左側の設定です ( DOM ready vs. onload)

于 2012-12-13T05:41:39.223 に答える