2013-06-19 3 views
3

광범위한 jQuery가있는 홈 페이지가 있습니다 ... 탭 클릭 등을 기반으로 div를 숨기고 표시합니다. 표시된 div 내에 다시 게시하고 새 페이지를 가져 오는 다른 페이지에 대한 링크가 있습니다.페이지의 이전 상태로 되돌리려면 '뒤로 버튼'을 누르십니까?

이제 사용자가 페이지를 클릭 할 때 페이지의 이전 상태로 돌아가는 '뒤로'버튼이 필요합니다. 따라서 Sell_your_books div이 표시되고 링크를 클릭 할 때 'Sell_your_books 탭'이 선택된 경우 Sell_your_books div이 표시된 'Sell_your_books tab'이 선택된 홈 페이지로 돌아가는 버튼을 갖기를 원합니다.

PHP로이를 달성하기 위해 변수를 홈페이지로 구문 분석 (POST)해야한다는 것을 알고 있지만이를 구현하는 올바른 방법이 확실하지 않습니다.

감사

답변

2

사용 해시 하이퍼 링크와 hashchange 이벤트입니다. jQuery를에 : 사용자가 브라우저의 "뒤로"버튼 (또는 history.go(-1))를 트리거하는 HTML 버튼을, 이전에 선택한 어떤 해시로 돌아갈 것이다 클릭 할 때마다

$(window).on('hashchange',function() { 
    var hash = location.hash.substring(1); // strip the leading # symbol 
    // now run code based on whatever the value of 'hash' is 
}); 

HTML 이제

<a href="#hash1">function A</a> 
<a href="#hash2">function B</a> 

,

MORE DETAILS

+0

감사합니다.이 방법이 더 쉽습니다. 브라우저는 해당 div가 발견 될 때까지 스크롤하도록 기본 설정되어 있습니다 ... 어떻게 중지합니까? – surfer190

0

숨겨진 입력 필드를 만듭니다. 다시 hashchange 이벤트를 트리거하고 CURREN이 하나를 채울 활성 탭.

<form> 
.. 
<input type="hidden" name="currentTab" value="" /> 

</form> 

jQuery를 약간 오른쪽 값 설정 :

<?php 

if(isset($_POST['currentTabe']) && $_POST['currentTab'] != '') { 
    $backLink = "your_page.php?tab=" . $_POST['currentTab']; 
} 

?> 

: 당신에게 데이터를 처리하는 PHP 스크립트에서

$(YOUR TAB SELECTOR).on('click', function() { 
$('input[name=currentTab]').val($(this).attr('id')); 
}); 

를,이 같은 백 링크를 만들 수 있습니다 백 링크를 통해 탭으로 사이트를 호출하면 추가 document.ready 이벤트를 만들 수 있습니다.이 이벤트는 활성 탭을 PHP $ _GET Parm에 설정합니다.

<script type="text/javascript"> 
<?php 
    if(isset($_GET['tab']) && $_GET['tab'] != '') { 
?> 
    jQuery(document).ready(function() { 

    var tab = $('#'+ <?=htmlspcialchars($_GET['tab'])?>); 
    if(tab.length <= 0) return false; //element not found 

    //active tab 
    tab.toggle('click'); //click or do something else to activate the current tab 

    }); 
<?php 
    } 
?> 
</script> 

주의 : XSS (크로스 사이트 스크립팅)주의, 그래서 확인하여 $ _POST하고 정확한 값을 $ _GET.

관련 문제