6

我正在使用jQueryMobile(v1.4.0)collapsible set/accordions来显示元素及其内容的列表,如所示。扩展jquerymobile可折叠集的滚动位置

<div id="List" data-role="collapsible-set"> 
    <div data-role="collapsible" data-content-theme="c"> 
     <h3>Lorem ipsum 1</h3> 
     <p>Suspendisse neque...</p> 
    </div> 
    <div data-role="collapsible" data-content-theme="c"> 
     <h3>Lorem ipsum 2</h3> 
     <p>Lorem ipsum...</p> 
    </div> 
</div> 

我的问题是与滚动时的项目的内容是长于屏幕的长度。

例如在小提琴:

  • 打开第一可压缩项目
  • 滚动至底部(如果你没有滚动,调整窗口的大小,让你不得不...否则,问题是不可见的)
  • 打开第二个项目

=>中的第一项关闭,而第二项被打开,但网页滚动不改变,你现在看到的第二个结束伊特米的内容。

因此,我的问题:有没有一种聪明的方式来强制页面设置屏幕顶部第二项的“标题”?

感谢, T.

回答

12

一旦一个可折叠的是扩大,检索其.offset().top$.mobile.silentScroll()到该位置。

$(document).on("expand", "[data-role=collapsible]", function() { 
    var position = $(this).offset().top; 
    $.mobile.silentScroll(position); 
}); 

更新:对于jQuery Mobile的1.4,使用collapsibleexpand事件。

Demo - JQM 1.0 - 1.1

Demo - JQM 1.2 - 1.3

Demo - JQM 1.4

+0

我设法使之与JQM 1.3工作.2,但不是1.4.0。任何想法为什么?小提琴:http://jsfiddle.net/Q7Hwz/5/ –

+3

许多事件已经在1.4中改变了,'expand' ='collapsibleexpand' http://jsfiddle.net/Palestinian/Q7Hwz/6/ @TimBourguignon – Omar