2012-03-01 8 views
3

좋아요, 현재 div (페이드 1)를 페이드 아웃하고 다른 페이드 (페이드 2)로 페이드하는 간단한 페이지 (내 페이지) 버튼이 있습니다. 나는 다른 곳에서 직접 그 페이지 (페이드 2)로 가고 싶을 가능성이 있음을 깨달았다. 내 페이지를 window.location으로 리디렉션 할 수 있습니다. 그러나 그 링크가 누르면 (다른 임의의 페이지에서) 페이지 (페이드 1)로 이동 한 다음 fadeOut 현재 div와 fadeIn 다른 하나 (페이드 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émiBreton – Stormie

8

AJAX를 지원하기 위해 페이지를 수정하고 싶지 않거나 다시 작성할 수없는 경우, 다른 구식 옵션은 URL의 매개 변수를 새로 고친 페이지의 힌트로 전달하는 것입니다. 중요한 점이 있으면 재지향 메시지를 숨기거나 쿠키 기법을 사용하여 페이지를 숨길 수 있습니다. 요점은 새로 고침 한 페이지에 이전 페이지의 일부 양식 토큰이 필요하다는 것입니다.

예 :

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

create 매개 변수, 쿠키 또는 무엇이든을위한 점검과 함께 $(document).ready() 함수 내에서 페이드 코드를 삽입.

@remibreton에 동의 하겠지만, AJAX를 사용하면 더 현대적이고 최신 방식입니다.

관련 문제