2010-04-02 82 views
2

我正在使用jquery UI选项卡,并且当切换选项卡时,在该选项卡内部的任何可滚动div都将其位置重置为屏幕顶部,到它。有谁知道如何防止这种情况?当div被隐藏时,滚动重置在div中

回答

1

发生这种情况是因为该选项卡处于隐藏状态,因此将其高度折叠为0并重置滚动。你真的不能阻止它,因为这是不可避免的,但你可以设置滚动位置回到它是这样的:

$("#tabs").tabs({ 
    select: function(event, ui) { 
     var prevTab = $(ui.panel).parent() 
           .children(".ui-tabs-panel:not(.ui-tabs-hide)"); 
     prevTab.data("scrollTop", prevTab.scrollTop()); 
    }, 
    show: function(event, ui) { 
     var tab = $(ui.panel); 
     if(tab.data("scrollTop")) 
      tab.scrollTop(tab.data("scrollTop")); 
    } 
});​ 

这离开选项卡时,存储滚动位置,回来的时候恢复它它。
Here's a quick demo for testing,享受:)