2

そのため、WP インストールで AJAX ローダーを使用しており、読み込んでいるページの 1 つにスクリプトが含まれています。

<div id="register-form">
    <div id="register-one"></div>
    <div style="text-align:center;padding-top:10px;"></div> 
    <div class="horizontal-rule"></div>
    <div id='register'>
        <div id="register-character">
        </div>
    </div>

    <div class="post">  
        <form action="" method="post" id="register-form" >
        What's your Name:
            <input class=in id='register_name' name="register_name" onkeydown='register_step1_keydown();' onkeyup='register_step1_keyup();'>
            <input class="next-submit-button" type="submit" id="register-step-one" value="" />
            <input type="hidden" name="submit" />
        </form>  
    </div>
</div>

<script type="text/javascript">

$("#register-step-one").click(function() {
    $.ajax({
      type: "POST",
      success: function() {
        $('#register-form').html("Test");
      }
     });
    return false;
});

</script>

ただし、問題は、ページが AJAX を介して読み込まれると、スクリプトが機能しないことです。それでも、ページを更新すると、スクリプトは機能します。明らかに、スクリプトは AJAX 呼び出しから実行するのが好きではありません。

AJAX 呼び出しを介してロードされたときにスクリプトを機能させる方法はありますか? スクリプトをメイン ページのフッターなどに配置できることはわかっていますが、メイン ページに大量のスクリプトが作成されるので、これを回避できることを望んでいました。

4

1 に答える 1

3

.ready()何よりもまず、それらの要素に何かを行う前に、すべての DOM 要素が確実に読み込まれるように、関数を でラップする必要があります。

また、jQuery の ajax 関数を介して返される HTML 内のスクリプトは、HTML が DOM に追加された場合にのみ実行されます。コードを含む html を追加しなかったため、返されたコンテンツのスクリプトは実行されません。

.ajax()以下の関数のパラメーターを見てください。dataType

データ・タイプ:

...

"html": HTML をプレーン テキストとして返します。含まれている script タグは、DOM に挿入されたときに評価されます。

...

于 2012-11-04T14:46:38.483 に答える