2010-07-20 139 views
0

我只是重新发布,使之更清楚&,因为我上载的问题的一个样本...阿贾克斯问题(jQuery的)

简单...

这个奇特框插件的伟大工程上此页http://www.websitesbyshane.co.uk/chris/portfolio.php

但是如果投资组合#content通过ajax被拉入index.php中,则不会。您可以通过访问www.websitesbyshane.co.uk/chris网页并点击'产品组合'来查看您的个人信息。

感谢您的时间。

Shane

+3

你可以在这里描述一下这个问题的代码吗? – David 2010-07-20 21:29:11

+0

嗨。不确定你想要看哪部分代码?我的问题是,我想在新元素上使用javascript,通过ajax将其加载到div中。 – shane 2010-07-20 21:42:03

+0

我一直在想如果.live()是我需要的... – shane 2010-07-20 21:42:34

回答

0

它看起来像你的ajax调用加载整个portfolio.php页面。如果用户没有启用Javascript,允许用户单击该链接并转到投资组合页面是件好事,但通过ajax调用加载整个页面肯定会导致一些问题。

您通过ajax加载的portfolio.php页面包含$(document).ready以启用lightbox,但此代码将永远不会执行,因为主页面已经加载。你的花哨盒插件的代码应该在主网页上。然后,您可以在将投资组合页面/内容加载到您的div后运行该代码来绑定花哨框。

编辑:增加了更多的细节:

您现在有

$('#content').load(toLoad) 

在js.js文件。根据jQuery的API文档(http://api.jquery.com/load/),你可以传递一个回调到它的时候,它已经完成运行:

$('#content').load(toLoad, function() { 
    alert('Load was performed.'); 
}); 

你可以你的想象框代码简单地加载到这个回调函数在js.js文件中像这样:

$('#content').load(toLoad, function() { 
    $("a#example6").fancybox({ 
     'titlePosition' : 'over' 
    }); 

    $("a[rel=example_group]").fancybox({ 
     'transitionIn' : 'none', 
     'transitionOut' : 'none', 
     'titlePosition' : 'over', 
     'titleFormat' : function(title, currentArray, currentIndex, currentOpts) { 
     return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + '/' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>'; 
     } 
    }); 
}); 

问题是即使您不打电话给投资组合页面,它也会被调用。它不会抱怨,但可以通过将它包装在“if”语句中来解决。

+0

谢谢。该解决方案听起来很完美我已经尝试向你的主站点添加相关的javascript,但是我不知道如何实现.bind()函数。我是否需要将新内容绑定到现有的JavaScript?这听起来合乎逻辑,但我该怎么做呢?感谢您的时间:) – shane 2010-07-21 05:38:09

+0

@shane你的代码有点杂乱 - 可以理解,因为你正在尝试很多事情来让它工作。我希望你能够使用我在这里写的东西。调用.fancybox()方法将绑定到页面上的任何新内容(如果在内容加载后调用该内容)。你不需要使用。生活 – 2010-07-21 12:43:56

+0

你好。谢谢您的帮助。我理解这里的逻辑,但... 使用回调功能,我能够操纵除了新添加的内容的DOM的任何部分。严重的头部划伤在这里进行。 – shane 2010-07-21 18:08:04

0

你使用萤火虫吗?这可以帮助你调试你的php/ajax代码。只要不要忘记 以便在调试XMLHttpRequests时启用javascript调试并监视ajax响应选项卡。

+0

嗨,我所有的javascripts都正常运行。我只是不确定如何在刚添加DOM的新元素上使用脚本。 – shane 2010-07-20 21:54:27