Jquery mobile jqm数据过滤器更改后如何重新加载Iscroll?

Jquery mobile jqm数据过滤器更改后如何重新加载Iscroll?,jquery-mobile,iscroll4,Jquery Mobile,Iscroll4,我有一个带有jquerymobile数据过滤器的列表视图,我正在使用iscroll。使用datafilter搜索后,我想重新加载Iscroll,因为它不会调整可滚动区域的大小。(因此可以从项目中滚动) 这是我的html: <div id="mywrapper" class="wrapper"> <div data-role="content" id="myscroller"> <ul data-

我有一个带有jquerymobile数据过滤器的列表视图,我正在使用iscroll。使用datafilter搜索后,我想重新加载Iscroll,因为它不会调整可滚动区域的大小。(因此可以从项目中滚动)

这是我的html:

        <div id="mywrapper" class="wrapper">
            <div data-role="content" id="myscroller">
                <ul data-role="listview" id="lstvw_myitems" data-filter="true"></ul>
            </div>
        </div> 
是否有其他(jquery)事件可以在listview上捕获

这是我使用的Iscroll代码。(超时是为了修复加载Iscroll时的错误,另一个代码是为了防止滚动时选择。)

}


我正在使用jqm1.3jq1.9.1和iscroll v4.2.5。

代替在列表对象上查找事件,我已更改代码以在搜索输入框中查找输入

下面是一个例子:

$(document).on('pagebeforeshow',"*", function(e, data){
//bind keypress of datafilter to resize iscroll
$('.ui-input-search > input').bind("keyup",function(){
    myScroll.refresh();
});
}))

注: Iscroll var必须在作用域中可用才能刷新它。始终调用此事件是因为*选择器,使用另一个选择器会更好。我也不知道“.ui输入搜索>输入”选择器是否足以覆盖那些搜索输入框


也许其他人会想出更好的解决办法

我也在努力做到这一点。这是一个很长的列表,一旦有人输入数据,我的Iscroll就不会调整大小。我试过你的方法,但我不能100%肯定我能理解。任何建议我都会很感激

这是我的iscroll代码:

  var myScroll;
var scroll_cookie = readCookie('scrollToAlt');
var back_cookie = readCookie('previousPagePath');
function loaded() 
   {
   myScroll = new iScroll('wrapper',
       {scrollbarClass: 'myScrollbar',
            hideScrollbar:false,
       });
        if ($('#scroller').height() <= $('#wrapper').height()){
           myScroll.destroy();
           myScroll = null;
        }
   }
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', loaded, false);

$(document).on('pagebeforeshow',"*", function(e, data){
    //bind keypress of datafilter to resize iscroll
    $('.ui-input-search > input').bind("keyup",function(){
    myScroll.refresh();
    });
});
var myScroll;
var scroll_cookie=readCookie('scrollToAlt');
var back_cookie=readCookie('previousPagePath');
函数加载()
{
myScroll=new iScroll('wrapper',
{scrollbarClass:'myScrollbar',
hideScrollbar:false,
});

如果($(“#scroller”).height()您使用的是Iscroll 4或其名为iScrollView的jQuery移动版本吗?请发布您绑定
Iscroll
的代码,我想我使用的是普通的Iscroll 4,我已经从loadIScroll中添加了代码。您确定在刷新之前代码没有销毁Iscroll吗?
$(document).on('pagebeforeshow',"*", function(e, data){
//bind keypress of datafilter to resize iscroll
$('.ui-input-search > input').bind("keyup",function(){
    myScroll.refresh();
});
  var myScroll;
var scroll_cookie = readCookie('scrollToAlt');
var back_cookie = readCookie('previousPagePath');
function loaded() 
   {
   myScroll = new iScroll('wrapper',
       {scrollbarClass: 'myScrollbar',
            hideScrollbar:false,
       });
        if ($('#scroller').height() <= $('#wrapper').height()){
           myScroll.destroy();
           myScroll = null;
        }
   }
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', loaded, false);

$(document).on('pagebeforeshow',"*", function(e, data){
    //bind keypress of datafilter to resize iscroll
    $('.ui-input-search > input').bind("keyup",function(){
    myScroll.refresh();
    });
});