2012-07-24 65 views
0

無法弄清楚如何使其發揮作用。我已經嘗試了一些變化。我希望窗口根據偏移量滾動到.accordion> dt的頂部。目前這段代碼只是打開面板並開始重新加載頁面。將window.scrollTo添加到簡單的jQuery手風琴

(function($) { 

    var $j = jQuery.noConflict(); 
    var allPanels = $j('.accordion > dd').hide(); 

    $('.accordion > a > dt').click(function() { 
     $this = $j(this); 
     $target = $this.parent().next(); 


     if (!$target.hasClass('active')) { 
      allPanels.removeClass('active').slideUp(); 
      $target.addClass('active').slideDown(); 
      window.scrollTo($(".accordion").offset().top); 
     } 

     return false; 
    }); 

})(jQuery); 

回答

0

它看起來好像您的DT元素駐留在錨標籤。通過返回false,您將停止DT元素上的默認點擊行爲,但是,您仍然需要停止將事件傳播到鏈接。

$('.accordion > a > dt').click(function(e) { 

    $this = $j(this); 
    $target = $this.parent().next(); 


    if (!$target.hasClass('active')) { 
     allPanels.removeClass('active').slideUp(); 
     $target.addClass('active').slideDown(); 
     window.scrollTo($(".accordion").offset().top); 
    } 

    e.stopPropagation(); 
    return false; 

}); 
+0

感謝您的建議。但我複製並粘貼了它,它似乎沒有工作。在Firefox中重新加載頁面,在Safari中,它跳轉到右側,被點擊的手風琴面板不在頂部。除了用我的代碼替換這個代碼之外,我應該做些什麼嗎 – 2012-07-31 18:12:45

+0

你可以用一些示例HTML更新你的問題,或者從這個小提琴工作:http://jsfiddle.net/nqr5C/ – 2012-07-31 18:26:04

+0

它在jsfiddle中效果很好,但是當我嘗試在我的代碼中實現它時不起作用,我甚至嘗試了一個簡單的HTML文檔,它包含了你設置的小提琴的所有方面,但它不起作用。然後我去了jsfiddle頁面左邊的「panels」表格,並將「javascript」改爲了javascript 1.7「,1.7版本顯示了我得到的結果。我使用google jquery鏈接到1.7.2 也是我的html雲: panel name

面板內容
感謝您的幫助迄今! – 2012-07-31 19:19:36