2017-02-16 49 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