2012-05-24 82 views
0

打破我能够从一个称为test.html页面成功加载内容到页面调用page.htm有:jQuery函数与.load

$(document).ready(function(){ 
    $("#reveal").load("test.html"); 
}); 

我把一个空div名为#reveal的page.htm和内容加载 - 没问题。

在test.html中,我有两个div类指定文章标题和文章内容类:.artTitle和.artContent。在page.html的css文件中,我显示:隐藏了.artContent - 这样所有显示的都是.artTitles。然后我想通过切换点击来揭示.artContents

我能够得到这个jQuery过程工作内联(在同一页面),但加载HTML时中断。加载时我缺少什么问题 - (非常绿色的新手)?

+0

您的加载的html与englobing html相同的域(和端口)吗?你使用的是http://(而不是file://)? –

回答

1

这是切换功能,可能是罪魁祸首,而不是加载功能。你有可能绑定到一个内容加载之前不存在的元素。您需要使用on()的委托语法,以便将侦听器绑定到#reveal或其他祖先。

0

您需要使用现场活动像以下:

$('body').on('click', '.artTitles', function() { // binding live click to upcoming elements 
    var self = this; // keeping reference to clicked title, because this will not catch into the hide callback function due to different scope 
    $('.artContents:visible').hide(// hiding visible contents 
    function() { // callback function 
     $(self).closest('.artContents').show(300); // show content corresponding to title 
    }); 
}); 
1

好吧,我用jQuery没有专家。事实上,我来到这里希望得到一个基本相同的问题的明确答案。已经给出的答案帮我指出正确的方向...这里是我的解决方案...

我假设你有一些jQuery的功能,看起来沿着线的东西,

$('.trigger').click(function() { $('.artContents').toggle(); }); 

通过.load()加载的HTML包含要点击的.trigger,它将切换.artContents,是的?尝试,

$(document).on('click','.trigger', function() { $('.artContents').toggle(); }); 

我真的希望有所帮助。我在“非常绿色的新手”阵营中与你一起,但这对我很有帮助。我无法解释为什么它的工作原理。也许别人可以。