2012-03-19 14 views
0

everyone。私はjQueryとワードプレスに非常に新たなんだ、とても親切にしてください:)jQueryの.load()メソッドを使用してページにロードすると、jQueryスライドショーが動作しません。

私の質問は、私は友人のバンドのために作ってるんだ、このサイトに関連する:http://ecbiz119.inmotionhosting.com/~fullbo6/

彼らは、ユーザーができるようにしたいです音楽が再生されている間、サイトをクリックします。だから私は非同期的に他のページからコンテンツを読み込むためにjQueryの.load()メソッドを使用しようとしています。 (理想的ではありませんが、私が思いつくのが一番です)

ページが最初に読み込まれると、ホームページのスライドショーが正常に見えるように見えます。しかし、リロードすると、アニメーションがスキップされます。私は解決策のために最高と最低を探しましたが、運はありません。

はここでスライドショーを動作させるために使用するコードです:ユーザーがホームリンクされていない任意のリンクをクリックすると

$('#slide-show > li:gt(0)').hide(); 
setInterval(function() { 
    $('#slide-show > li:first') 
     .fadeOut(1000) 
     .next() 
     .fadeIn(1000) 
     .end() 
     .appendTo('#slide-show'); 
}, 5000); 

、次のコードが実行されます。 (「jspPane」への参照が可能JScrollPaneのプラグインがあるコンテンツdivのスクロール可能):

$('#main-nav').not('.page-item-6').find('a').on('click', function (e) { 
    e.preventDefault(); 
    var href = $(this).attr('href'); 
    $('#main-nav a').removeClass('active'); 
    $(this).addClass('active'); 
    $('#slide-show-container, #updates-wrap .container').empty(); 
    $('.jspPane').empty().load(href + ' .page-content'); 
    $('#page-content-container').show(); 
}); 

、ホームリンクがクリックされたときに、次のコードを実行(それは基本的には上記のだが、逆に):

$('#main-nav .page-item-6').find('a').on('click', function (e) { 
    e.preventDefault(); 
    var href = $(this).attr('href'); 
    $('#main-nav a').removeClass('active'); 
    $(this).addClass('active'); 
    $('#slide-show-container').load(href + ' #slide-show'); 
    $('#page-content-container').hide(); 
}); 

誰もが提供できる洞察を事前に感謝します。ほんとうにありがとう!

更新:ここに完全なコードがあります。

jQuery(document).ready(function($) { 

startSlideShow(); 

function startSlideShow(){ 
    $('#slide-show > li:gt(0)').hide(); 
    setInterval(function() {  
     $('#slide-show > li:first') 
     .fadeOut(1000) 
     .next() 
     .fadeIn(1000) 
     .end() 
     .appendTo('#slide-show'); 
    }, 5000); 
} 


$('#page-content-container').jScrollPane().hide(); 

$('#main-nav .page-item-6 a').addClass('active'); 

$('#main-nav').not('.page-item-6').find('a').on('click', function(e){ 
    e.preventDefault(); 
    var href = $(this).attr('href'); 
    $('#main-nav a').removeClass('active'); 
    $(this).addClass('active'); 
    $('#slide-show-container, #updates-wrap .container').empty().hide(); 
    $('.jspPane').empty().load(href + ' .page-content'); 
    $('#page-content-container').show(); 
}); 

$('#main-nav .page-item-6').find('a').on('click', function (e) { 
    e.preventDefault(); 
    var href = $(this).attr('href'); 
    $('#main-nav a').removeClass('active'); 
    $(this).addClass('active'); 
    $('#slide-show-container').load(href + ' #slide-show', function(){ 
      startSlideShow(); 
    }); 
    $('#slide-show-container, #updates-wrap .container').show(); 
    $('#page-content-container').hide(); 
});  

});

答えて

0

ロード完了後にスライドショーを実行するメソッドを呼び出そうとしましたか?

$('.jspPane').empty().load(href + ' .page-content',function(){ 
    StartSlideShow(); 

}); 

とあなたのStartSlideShow方法では、スライドショー用のコードに

function StartSlideShow() 
{ 
    // Code for the slide show 
} 
+0

おかげで、CAbbottを持っています!それは問題の一部を助けました。これ以上スキップすることはありません。しかし、リロードすると、スライドショーは倍速で表示されます。 –

+0

@ BrianO'Neill:スライドショーのインスタンスが1つしか実行されていないことを確認してください。 inteval timeout変数の値を確認してください。 – Shyju

関連する問題