JQuery中的JQuery.load已加载页面/snippit


JQuery .load in jQuery loaded page/snippit

我遇到了这个问题,我已经尝试过几次修复,但都没有成功。

我得到的是:

1/当点击第1页中的项目时,我执行以下代码:

$('.row').click(function() {
    $('#content').load('detail.php', function() {
        // some extra binding code
    });
});
detail.php is a PHP file with PHP code and HTML snippit (so no complete HTML page)

2/这是detail.php:内容的剪报

<script type="text/javascript">
    $(document).ready(function() {
        $('#detail_content').load('subdetail.php');  <--- problem is here
    });
</script>
<section id='detail_content'>
</section>

第二次加载不起作用。我发现了原因,但我不明白为什么它不起作用。如果我将警报作为第一个jQuery语句,检查元素"detail_content"是否存在,那么它将返回false。所以这就是为什么第二个负载不能工作的原因。然而,我不明白为什么jQuery似乎在那个特定的时间找不到那个元素?我在$(document).ready(…)-块中执行它,所以这段代码应该只在加载DOM时执行,对吧?

有人知道为什么这个不起作用,我该怎么解决吗?

蒂亚!

页面加载完成后,您的DOM就准备好了。通过jQuery.load、jQuery.get等方法加载页面不会触发另一个DOM Ready事件,因为DOM只是被操作(=插入新内容),而不是重新生成(因此DOM在整个AJAX加载过程中都保持就绪)。

一个可能的解决方案是,只在的回调中执行代码

    $('#detail_content').load('subdetail.php');

示例代码:

$('#detail_content').load('subdetail.php', function(){
    alert('page fetched!');
});

应该工作,并且应该在加载页面后立即触发警报。

问候,

Robin Heller