2017-02-16 51 views
1

我有一個PHP文件(稱爲aboutMe.php),其中包含一些HTML如下:的jQuery的document.ready()沒有觸發動態地加載內容

<script type="text/javascript" src="/aboutMe.js"></script> 
 
<div id="aboutme-gender" class="aboutme-block"> 
 
        <div class="aboutme-question">My gender is:</div> 
 
        <div class="aboutme-error">Please select your gender.</div> 
 
        <div class="aboutme-answer"> 
 
         <input id="gender-male" name="the-gender" type="radio" value="1" /> 
 
         <label for="gender-male">Male</label> 
 
         <input id="gender-female" name="the-gender" type="radio" value="2" /> 
 
         <label for="gender-female">Female</label> 
 
        </div> 
 
       </div>

的aboutme .js文件包含一個函數如下:

jQuery(document).ready(function($) {.....does stuff to the tags in the HTML}); 

這一切工作正常,如果頁面是loade直接。然而,當另一頁要動態加載這個如下:

$("#load-aboutme-here").load("aboutMe.php"); 

...的的document.ready()不會觸發事件,事情沒有得到標記。

我已經看到了類似的帖子,但不能完全得到什麼,我需要他們。做的事情就像替代品的document.ready()用於window.load(),但是它甚至不都當aboutMe.php頁面直接加載工作。

任何想法大加讚賞 - 這是推動我堅果雖然我懷疑這是一個簡單的辦法!

感謝 伊恩

+0

jQuery的'ready'功能僅火災時,被觸發的初始'DomReady'事件初始頁面加載。 jQuery'load'不會重新觸發此事件。這就是爲什麼它不發生後'load'-ING的 – daniel0mullins

回答

0

如果我理解正確你的問題,我相信你可以只創建爲​​功能的回調,像這樣:

$("#load-aboutme-here").load("aboutMe.php", null, function() 
{ 
    // Code to be executed when aboutMe.php is loaded. 
    // i.e. The code in aboutMe.js 
}); 
+0

頁OK,這似乎這樣的伎倆,謝謝。我對js編碼相當陌生,這對了解並解決我的問題非常有用。我是否認爲可能會導致性能下降?屏幕刷新看起來稍微延遲,儘管在這個階段它可能是別的東西。 – iaing1000

+0

應該沒有明顯的性能影響。在理論層面上,當然 - 非常小的打擊 - 但沒有辦法。 – user6003859

0

注意,該文件是主要的網頁.. 。未檢索到後續文件

該文檔在ajax完成之前就已準備就緒,因此在準備就緒後調用的任何$(document).ready()將立即觸發。在你的情況下,它會火之前的元素存在

移動的HTML下面的腳本標記代碼引用

<div id="aboutme-gender" class="aboutme-block"> 
    ....... 
</div> 
<script type="text/javascript" src="/aboutMe.js"></script> 
+0

這並不能解決直接的問題,因爲js似乎根本不運行,不管它在哪裏。但是,在原始主頁的末尾運行一些js反而非常有用! – iaing1000