强制脚本在AJAX加载页面中运行

时间:2012-11-04 14:41:49

标签: javascript jquery ajax

所以我在WP安装中使用了一个AJAX加载器,我加载的一个页面中有一个脚本。

<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调用加载时工作?我知道我可以将脚本放入主页的页脚或者其他东西,但是我希望我可以解决这个问题,因为我最终会在主页面中输入大量的脚本。

1 个答案:

答案 0 :(得分:3)

在其他任何事情之前,您应该将函数包装在.ready()中以确保在对这些元素执行某些操作之前加载所有DOM元素

此外,仅当HTML附加在DOM 中时,通过jQuery中的ajax函数返回的HTML脚本才会执行 。由于您没有附加包含代码的html,因此返回的内容中的脚本将无法运行。

dataType

下查看.ajax()函数的参数
  

<强>数据类型:

     

...

     

“html”:以纯文本形式返回HTML;包含的脚本标记在插入DOM时会评估

     

...