この答えは少し遅れるかもしれません...しかし、私は同じ問題に悩まされていたので、ここに私の解決策があります。注: このソリューションには jquery が必要ですが、とにかく使用しています。
スクリプト部分:
function iscroller_init () {
var iscroller = $('.iscroller');
iscroller.each(function(index){
$(this).addClass('iscroller'+index).attr('iscroller_id','iscroller'+index);
var tmpfnc = new Function('var myScroll'+index);
tmpfnc();
var tmpfnc = new Function('myScroll'+index+' = new IScroll(\'.iscroller'+index+'\', { mouseWheel: true });');
tmpfnc();
});
}
function iscroller_reinit (el) {
var el = $(el);
var iscroller = $('.iscroller');
var i = iscroller.index(el);
var tmpfnc = new Function('var myScroll'+i+' = new IScroll(\'.iscroller'+i+'\', { mouseWheel: true });');
tmpfnc();
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
$(document).ready(function(){
if ($('.iscroller').length > 0) iscroller_init ();
});
html:
<div class="scrollholder fl">
<div class="iscroller">
<div class="scroller">
<ul>
<li>Pretty row 1</li>
<li>Pretty row 2</li>
<li>Pretty row 3</li>
<li>Pretty row 4</li>
.....
<li>Pretty row 47</li>
<li>Pretty row 48</li>
<li>Pretty row 49</li>
<li>Pretty row 50</li>
</ul>
</div>
</div>
</div>
ここで、親<div class="scrollholder fl">
は親 div であり、必要な場所に複数回配置できます。情報: 私の場合、クラス "fl" は css 区切りとして"float:left;"
機能し、iscroll 関数には対応していません。2 番目の関数iscroller_reinit (el)
は、指定された単一の iscroller を再初期化するためのもので、コンテナが ajax リクエストによってロードされた後に起動される場合があります。