2012-11-04 88 views
1

因此,我在我的WP安裝中使用了一個AJAX加載器,並且我正在加載的其中一個頁面中有一個腳本。強制腳本在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調用加載時工作?我知道我可以將腳本放在主頁的頁腳或其他東西上,但是我希望能夠解決這個問題,因爲我最終會在主頁面顯示大量腳本。

+0

看看http://stackoverflow.com/questions/12359763/ajax-loaded-content-script-is-not-executing –

回答

2

之前別的,你應該換你的函數在.ready(),以確保您做一些這些元素

而且之前所有的DOM元素被加載,HTML中的腳本,jQuery中通過AJAX功能恢復執行只有當HTML被附加在DOM中時。由於您沒有追加包含代碼的HTML,因此返回的內容中的腳本將無法運行。

看看在.ajax()函數的參數,下dataType

數據類型:

...

「HTML」:返回HTML純文本;包含的腳本標記在插入到DOM中時被評估爲

...

+0

我不知道這個答案我的問題?該頁面上的腳本在通過URL欄加載時工作正常,但當頁面通過主頁面導航欄中的AJAX請求加載時,腳本無法正常工作。 – Tenatious

+0

@Tenatious檢查您的控制檯。就像我說的,除非頁面上附加了來自Ajax的HTML,否則加載HTML的腳本將無法工作。另外,您正在加載整個頁面。可能有其他*腳本可能導致其他人不能運行,而不僅僅是你的腳本。 – Joseph

相關問題