2009-06-21 24 views
11

リンクをクリックすると2つのことが同時に起こります。私はゆっくりとJqueryのドキュメントを読んでいますが、私がまだ必要としていることをまだ学んでいません。私は非表示に#slideshow divの、およびそれに代わる新しいDIVをご希望のサービスのリンクをクリックするとここでJqueryアニメーションの非表示と表示

は私のsite

へのリンクです。

サービスリンクをクリックするとスライドショーがアニメーション表示されるようにしようとしましたが、アニメーション機能を実行するか、リンクされたhtmlページに移動します。どのように私は両方を達成するだろう。

同じページにdivを表示したり、新しいHTMLページに移動しても問題はありません。私はちょうどアニメーション機能を持って、1つを隠しながら内容を変更したい。

これは私が

$(document).ready(function(){ 
    $("a.home").toggle(
    function(){ 
     $("#slideshow").animate({ height: 'hide', opacity: 'hide' }, 'slow'); 
    }, 
    function(){ 
     $("#slideshow").animate({ height: 'show', opacity: 'show' }, 'slow'); 
    } 
); 
}); 

$(document).ready(function(){ 
    $("a.services").toggle(
    function(){ 
     $("#slideshow2").animate({ height: 'show', opacity: 'show' }, 'slow'); 
    }, 
    function(){ 
     $("#slideshow2").animate({ height: 'hide', opacity: 'hide' }, 'slow'); 
    } 
); 
}); 

自宅やサービスが2つのリンクである、と私は#slideshow div要素を非表示にするには、クリックするとサービスが好き、となりslideshow2 div要素を、表示されるでしょうを使用していますjqueryのコードです最初のものを隠して置き換えてください。

かなりの量のhtmlがあるので、リンクから自分のソースを見る方が簡単かもしれません。

答えて

11

更新:このソリューションは、コメントのフォローアップの質問に従って更新されました。

show/hideメソッドのcallback methodを使用する必要があります。

$("a").click(function(){ 

    /* Hide First Div */ 
    $("#div1").hide("slow", function(){ 
    /* Replace First Div */ 
    $(this).replaceWith("<div>New Div!</div>"); 
    }); 

    /* Hide Second Div */ 
    $("#div2").hide("slow", function(){ 
    /* Replace Second Div */ 
    $(this).replaceWith("<div>New Div!</div>"); 
    }); 

    /* If you wanted to sequence these events, and only 
    hide/replace the second once the first has finished, 
    you would take the second hide/replace code-block 
    and run it within the callback method of the first 
    hide/replace codeblock. */ 

}); 

コールバックメソッドは、.show/.hide関数の2番目のパラメータです。 .show/.hideメソッドが完了するたびに実行されます。したがって、あなたのボックスを閉じる/開くことができ、コールバックメソッド内ですぐにイベントを実行します。

+0

素晴らしいです。ありがとう! 簡単な質問ですが、2つのdivを非表示にして、1回のクリックで2つのdivに置き換えるにはどうすればよいでしょうか。技術的にはうまくいきますが、両方のdivを同じものに置き換えるので、繰り返します。私は現在の問題で自分のサイトを更新しました。 なぜ、あなたのコードは私がそれを使用していた前のコードなしで動作しません。 –

+0

解決策は、2つのdivを非表示にし、両方を異なるdivに置き換える方法を示すために更新されました。 – Sampson

+0

はい、今私はこのすべてがjqueryのドキュメントのチュートリアルでカバーされていたことを覚えていますが、実際に使用するまでは決して把握できません。左上隅にすべてのスライドアップのように.hide upをする方法はありますか? –

関連する問題