2010-11-24 89 views
0

你好,我有網站,我顯示/隱藏在默認情況下啓動加載的分區。但問題是,當我刷新頁面時,它總是回到主分區。有什麼辦法可以做到像mysite /#news mysite /#這樣的東西嗎?通過URL傳遞值

的代碼,我有:

 $('a#btnNews').click(function() 
     { 
      $('#divabout').hide(); 
      $('#divnews').fadeIn(); 
      $('#pagetimer').load('scripts/loadtimer.php'); 
      return false; 
     }); 

     $('a#btnAbout').click(function() 
     { 
      $('#divrooster').hide(); 
      $('#divabout').fadeIn(); 
      $('#pagetimer').load('scripts/loadtimer.php'); 
      return false; 
     }); 

回答

0

在本可以使用window.location.hash代替。

if (location.hash != "") { 
    $('a#'+location.hash).click(); 
} 
$('a#btnNews').click(function() 
{ 
    $('#divabout').hide(); 
    location.hash = 'btnNews'; 
    $('#divnews').fadeIn(); 
    $('#pagetimer').load('scripts/loadtimer.php'); 
    return false; 
}); 
$('a#btnAbout').click(function() 
{ 
    $('#divrooster').hide(); 
    location.hash = 'btnAbout'; 
    $('#divabout').fadeIn(); 
    $('#pagetimer').load('scripts/loadtimer.php'); 
    return false; 
}); 

確保把所有這一切無論是$(function(){});$(document).ready(function(){});裏面!

您可以使用$('a#'+location.hash).click();或者您可以更改散列直接淡入目標div。您可以使用e.preventDefault()而不是return false;。 (它也工作得更好)

$('a#btnNews').click(function(e) { 
e.preventDefault(); 
... 
}); 
0

不完全像你那裏,但你可以通過更新散列保存頁面的狀態。

有和高級的插件,將爲您處理,或者你可以推出自己的。

插件:http://benalman.com/projects/jquery-bbq-plugin/

滾你自己:http://jsbin.com/oyeqe3/3#List2

在滾你自己的例子,你可以看到列表2被作爲哈希通過#。它會保持第二個列表顯示,其他隱藏。從上面的鏈接

代碼示例:

HTML:

<a href="#List1" class="trigger">Show 1</a> &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; 
<a href="#List2" class="trigger">Show 2</a>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; 
<a href="#List3" class="trigger">Show 3</a> &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp; 

<ul id="List1"> 
    <li>One</li> 
</ul> 
<ul id="List2"> 
    <li>Two</li> 
</ul> 
<ul id="List3"> 
    <li>Three</li> 
</ul> 

jQuery的

​​

不是美麗的實現,但你希望的想法。