2012-03-01 26 views
3

さて、現在のdiv(フェード1)をフェードアウトし、別のフェード(フェード2)でフェードする単純なボタンがMyPage(MyPage)にあります。私は今、どこか他の場所からそのページ(フェード2)に行きたいと思う可能性があることを認識しました。私のページをwindow.locationでリダイレクトできます。しかし、私はそのリンクが(いくつかの他のランダムなページから)押された場合、ページ(フェード1)に行き、次にfadeOut現在のdivとfadeInもう1つ(フェード2)したい。リダイレクト後に関数を実行する

これはあまり混乱しないと思います。

$('#fav').click(function(){ 
    window.location = 'production/produc_order.php'; 
    $('#view_production').fadeOut('slow'); 
    $('#create_order').fadeIn('slow'); 
}) 
+3

一度 'window.location'を使うと、ブラウザは新しいページをロードします。実行後は何も表示されません。ページの一部にロードしたい場合はAJAXの使用を調べてください – ManseUK

+0

ページBにユーザーを送信したいが、ページBにユーザーを送信した後もページAのコードを実行したいのですか? –

+0

ユーザーは 'window.location'を使ってページAにリダイレクトしますが、リダイレクト後に基本的にそのボタンの機能を実行する必要があります(つまり、現在のdivをフェードアウトして別のものをフェードインする)。 – Namit

答えて

2

window.locationは、現在のブラウザで実行されているすべてのスクリプトを殺す変更:これは私がページ(マイページ)に到達するために使用していたコードです。

あなたの唯一の解決策は、AJAX経由でページを取得し、コンテンツが読み込まれたときに実行するコールバック関数を実行することです。 Here is something to get you started

jQuery as a nice .ajax() methodAJAX要求を容易に実行し、成功した要求と失敗した要求にコールバックを関連付けることができます。

+0

正確には、私が望む他の操作をどのように行うことができますか? – Namit

+0

'AJAX'リクエストで。私の更新された答えをチェックしてください。 –

+0

あなたの答えの最初のリンクはもはや維持されていません、あなたは@Ré[email protected]émiBretonを更新してください。 – Stormie

8

AJAXをサポートするためにページを再作成したくない、または再作成できない場合は、URLのパラメータをリフレッシュされたページのヒントとして渡すことができます。重要なことが感じられたらPOSTをリダイレクトすることで隠すことができます。また、クッキーテクニックを使用することもできます。

例:

$('#fav').click(function(){ 
    window.location = 'production/produc_order.php?create=1'; 
}) 

createパラメータ、クッキーまたは何のためにチェックして、$(document).ready()関数内フェードコードを置きます。

私は@remibretonに同意しますが、AJAXを使うことはよりヒップで現代的な方法です。

関連する問題