2013-03-25 23 views
1

我正在使用引導添加插件使右上角的div與內容滑動。我在窗口頂部有另一部分,將展開另一部分以顯示一些細節。問題是,當詳細信息部分展開時,貼上的div的偏移必須更新。我做了這樣的事情在affix插件中動態更改偏移

<div class="affixed-box" data-offset-top="160" data-spy="affix"> 

    $(".detail-btn").click(function(){ 
    if ($(".opened").length > 0) //The detail div is expanded 
     { 
     $(".affixed-box").attr('data-offset-top','160'); 
    } 

    else  
    { 
    $(".affixed-box").attr('data-offset-top','400'); 
    } 
    }); 

我從開發者工具的偏移得到更新驗證,但貼元素的行爲保持不變(它仍然得到貼在相同的頂部位置)。還有什麼我需要做的動態更新偏移量的最高值。

+0

這裏的底部是解釋類似行爲的小提琴 http://jsfiddle.net/fztdv/1/ 按下顯示按鈕時,必須更改偏移值。 – Dania 2013-03-26 05:40:45

回答

2

與我正在處理的新網站有類似的情況(當窗口調整大小時,粘貼的導航欄上方的幻燈片顯示更改高度,而將錯誤的偏移量留下貼上的導航欄)。

答案是從jQuery的數據緩存中刪除詞綴的數據,然後刪除與詞綴插件相關的任何類,像這樣:

$([selector]).removeData('affix').removeClass('affix affix-top affix-bottom'); 

我發現,在https://github.com/twbs/bootstrap/issues/5870

0

若見scrollspy(「刷新」)方法可以幫助:http://twitter.github.com/bootstrap/javascript.html#scrollspy

.scrollspy('refresh') 

當結合使用scrollspy與添加或從DOM元素的消除,你需要調用refresh方法,像這樣:

$('[data-spy="affix"]').each(function() { 
var $spy = $(this).scrollspy('refresh') 
}); 

祝你好運!

+0

下面是解釋類似行爲的小提琴jsfiddle.net/fztdv/1按下顯示按鈕時,必須更改偏移值。 – Dania 2013-03-26 05:42:50

+0

感謝jsfiddle,它更容易描繪問題。尚未解決。看看這個問題的答案是否可以幫助你:http://stackoverflow.com/questions/11421408/bootstrap-scrollspy-doesnt-work-inside-tabs – 2013-03-27 10:52:09

+0

爲什麼不只是:'$('[data-spy =「affix」 ] ')scrollspy(' 刷新「);'? – whiskeysierra 2013-06-28 09:56:09

0

根據manual您可以在data屬性中傳遞返回偏移值的函數。

如果你要啓動JSFiddle,那麼已經處理它的人可以輕鬆地幫你。

+0

下面是解釋類似行爲的小提琴jsfiddle.net/fztdv/1按下顯示按鈕時,必須更改偏移值。 – Dania 2013-03-26 05:41:04