1

使用 jQueryMobile 和 iscrollview 插件,我无法在包含动态添加的内容的页面上向下滚动。这是我的 HTML:

<div data-role="content" class="care-plan-fields"  id="scroll-wrapper" data-iscroll>

                <div data-role="fieldcontain" id="field1">
                    <label for="field1Text" id="field1Label"></label>
                    <textarea cols="40" rows="2" id="field1Text" spellcheck="true" autocorrect="on" autocapitalize="on"></textarea>
                </div>


                <div data-role="fieldcontain">
                    <label for="field2Text" id="field2Label"></label>
                    <textarea cols="40" rows="2" id="field2Text" spellcheck="true" autocorrect="on" autocapitalize="on"></textarea>
                </div>


                <div data-role="fieldcontain">
                    <label for="field3Text" id="field3Label"></label>
                    <textarea cols="40" rows="2" id="field3Text" spellcheck="true" autocorrect="on" autocapitalize="on"></textarea>
                </div>


                <div data-role="fieldcontain" id="field4">
                    <label for="field4Text" id="field4Label"></label>
                    <textarea cols="40" rows="2" id="field4Text" spellcheck="true" autocorrect="on" autocapitalize="on"></textarea>
                </div>

            </div>

我在pagebeforeshow处理程序中向 textareas 添加数据,如下所示:

$("label[for='field1Text']").text(carePlan.fields[0].label);
$('#field1Text').val(carePlan.fields[0].text);

然后立即在滚动视图上调用刷新以使其调整大小:

$('#scroll-wrapper').iscrollview("refresh");

但是,虽然 textareas 已调整大小以适应添加到其中的文本的大小,但页面似乎没有调整大小,如果添加的数据超出页面底部,我将无法向下滚动。

如果我离开页面并再次返回,我可以完全向下滚动。

我认为这是一些渲染问题,并且无法弄清楚如何重新渲染页面而无需再次导航。(请注意,iscrollview 插件适用于我的应用程序中的其他列表视图,但它们没有像这样动态添加的数据。)有人有什么想法吗?干杯

4

1 回答 1

0

那些其他列表视图也是页面的主要内容 div 吗?

可能 iscroll 与 jquery mobile 布局设置冲突 - 内容 div 调整大小以适应 jquery mobile 的内容,然后 iscroll 将其作为可用的屏幕区域,即使它实际上并非全部可见。内容 div 附带的开箱即用滚动也不会生效,因为 iscroll 正在捕获所有触摸事件。

于 2012-11-17T12:55:49.367 回答