2016-08-03 53 views
0

我試圖設置鏈接,使用下面的URL,可以在Django應用程序中加載頁面時直接跳轉到相關div,例如,Django直接跳轉到div

mysite.mydomain /常見問題解答#faq9-1

下面是常見問題的一個示例:

<div class="panel-group" id="faq-9"> 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
      <h4 class="panel-title"> 
       <a data-toggle="collapse" data-parent="#accordion" href="#faq9-1"> 
        9.1 FAQ Title here. 
       </a> 
      </h4> 
     </div> 
     <div id="faq9-1" class="panel-collapse collapse"> 
      <div class="panel-body"> 
       Body of FAQ here. 
      </div> 
     </div> 
    </div> 

當然,簡單地加載相關的URL不執行任何操作,並更換href="#faq9-1"和/或id="faq9-1"name="faq9-1"不會改變這一點。所以,我想也許一些jQuery可能會做的伎倆:

<script type="application/javascript"> 
$(document).ready(function() { 
    var faq = window.location.href.split('#')[1]; 
    if (faq) { 
     console.log("Got FAQ: " + faq); 
     if(faq.match(/^faq/)) { 
      $('html, body').animate({ 
       scrollTop: $("#" + faq).offset().top 
      }, 2000); 
     } 
    } 
}); 
</script> 

...雖然沒有,但。我甚至無法觸發從控制檯窗口跳轉的任何內容。我也試過這個插件:

https://github.com/flesler/jquery.scrollTo

...和,試用過的插件,並從控制檯上面的方法。依然沒有。大概我錯過了一些明顯的東西,所以我歡迎任何建議。

回答

0

最終設法通過以下方式來實現此目的。首先,通過添加另一ID參數:

<a data-toggle="collapse" data-parent="#accordion" href="#faq1-2" id="faq1_2"> 

即固定移動的相關部分到頂部,但隨後它需要一些JavaScript來移動從一個橫幅下觀察出部分,並且還以展開視圖:

$(window).load(function() { 
     if (window.location.hash) { 
      var faq = window.location.href.split('#')[1]; 
      var tbody = faq.replace(/_/,'-'); 
      $('#' + tbody).addClass("in"); 
      window.scrollBy(0,-160); 
     } 

    }); 
1

我看不到所有的html,但是如果你的頁面不滾動(如在頁面上沒有足夠的信息需要滾動條),那麼頁面不會跳轉,因爲那裏無處可跳。

你不應該需要jQuery來完成這個。您的代碼是正確的<a href="#faq9-1"></a>和div是<div id="faq9-1">

+0

頁面上有足夠的常見問題解答,因此需要滾動查看較低的問題。的確,我會認爲這可以在沒有jQuery的情況下完成,但似乎並非如此。 – knirirr