jQuery document.ready()没有触发动态加载的内容

时间:2017-02-16 20:26:08

标签: javascript php jquery html

我有一个PHP文件(名为aboutMe.php),其中包含一些HTML,如下所示:



<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>
&#13;
&#13;
&#13;

aboutme.js文件包含如下函数:

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

如果直接加载页面,这一切都正常。但是,当另一个页面想要动态加载时,如下所示:

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

... document.ready()事件没有触发,事情也没有被标记。

我看过类似的帖子,但却无法从他们那里得到我需要的东西。已经完成了替换window.load()的document.ready()之类的事情,但是当直接加载aboutMe.php页面时它甚至都不起作用。

任何想法都非常感激 - 这让我感到疯狂,虽然我怀疑它很容易解决!

由于 伊恩

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,我相信你可以像.load()那样为$("#load-aboutme-here").load("aboutMe.php", null, function() { // Code to be executed when aboutMe.php is loaded. // i.e. The code in aboutMe.js }); 函数创建一个回调:

db.friends.where({name: "David", age: 43}).first(friend => {
    console.log("Found David, 43: " + JSON.stringify(friend));
}).catch(error => {
    console.error(error.stack || error);
});

答案 1 :(得分:0)

请注意,该文档是主页面...而不是您检索的后续文件

文档在ajax完成之前就已经准备好了,所以在它准备就绪后调用的任何$(document).ready()都会立即触发。在你的情况下,它将在元素存在之前触发

将脚本标记移动到代码引用的html下面

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