2012-12-11 121 views
3

我在加载jQuery AJAX GET文件后如何加载jQuery脚本时遇到了一些困难。通过AJAX加载后未加载jQuery脚本GET调用

此代码势必id'd作为navhome股利:

$('#navhome').live('click',getHome); 

下面的代码就是从服务器获取文件。

function getHome() {  
$('#pagecontent').fadeOut('fast', function() { 
    $.ajax({ 
    type: "GET", 
    url: "../../pages/home.php", 
    success: postToPage}); 
});} 

而这个代码将在页面上:

function postToPage(data, status) { 
$('#pagecontent').html(data);} 

什么,我想发生是有一个滑块插件运行时加载文件,但我有真正困难的是理解我需要做些什么才能让它运行。

我有上面的动力,我为我的Minecraft服务器制作的一个小网站,它可在http://www.chernobylserver.com 。当你点击成员页面时,它会使用上面的内容加载新内容,但是当我点击Home时,它不会重新加载滑块脚本。

如果你能指出我朝着正确的方向,我会永远感谢你。现在有一阵子让我很不高兴。这对我来说是全新的领域。

感谢您花时间阅读本文,我非常感谢。 :-)

卡勒姆克尔

+0

因此它适用于一个链接,但它不适用于另一个链接? – lascort

+1

滑块脚本在加载页面时运行,它使用常规方法硬编码到default.php文件中。当使用jQuery AJAX重新加载内容时,它不会重新运行该脚本。 –

回答

1

只需将您的nivoslider初始化成一个功能

function startSlider() { 
    jQuery('#slider').nivoSlider([... options here ...]); 
} 

,并把它添加到postToPage();

function postToPage(data, status) { 
    $('#ajaxcontent').html(data); 
    $('#ajaxcontent').fadeIn('slow'); 
    $('#footerribbon').fadeIn('slow'); 
    startSlider(); 
    } 

另外,quicktip:不要使用.live()。使用$.on()

+0

你好,我的英雄。非常感谢你,它非常完美!只是在旁注中,是否有任何方法可以将函数放在nivoJS.js文件中,然后在ajax.js文件中调用它?再次感谢你,你真棒! –

+0

这样做是一个不好的做法,但是,你可以做到这一点。只需将函数startSlider(){...}放在文件的底部即可。确保你在ajax.js文件之前嵌入了nivoJS.js,并且ajax.js将能够调用它。 – Aktee

+0

太棒了,非常感谢! –