我正在使用以下
jquery 1.11.1
jquery.mobile 1.4.3
cordova 2.9.0
iscroll 5
这是我的HTML:
<div data-role="page" id="listpageid">
<div data-role="header" data-position="fixed">
some radio buttons
</div>
<div id="wrapper">
<div data-role="content" id="scroller">
</div>
</div>
</div>
我有一个从服务器获取大量数据的ajax调用。我循环通过结果并将它们添加到id =“scroller”
的div中var scroller = $('<div />', {id : 'scroller'}), i = 0;
$.each(resultsArr, function(key, value) {
scroller.append(
$('<a>', {
id : 'a' + (i++),
html : value.field1
on : {
click : function() {
alert("you clicked on " + this.id);
}
}
}),
$('<br />'),
$('<br />')
);
});
$('#scroller').replaceWith(scroller);
只要ajax调用填充resultsArr
,就会运行此代码运行正常。它显示一个列表,每个元素都是可点击的。
然而,当我添加
myScroll = new IScroll('#wrapper', {click:true});
后
$('#scroller').replaceWith(scroller);
我的结果不好:
页面第一次显示并执行此操作时,它给出了我想要的内容,一个可滚动的可点击链接列表。
如果我离开页面并导航回来,点击每个链接会产生2个警报而不是1个。
如果我离开页面并第3次导航,点击链接会发出3个警报而不是1个。
答案 0 :(得分:0)
我也有同样的问题。 尝试将click设置为false而不是true。
myScroll = new IScroll(&#39; #wrapper&#39;,{click:false});
它对我有用。不管它只需点击一下。
如果上述错误,请尝试这个。
document.addEventListener(&#39; touchmove&#39;,函数(E){e.preventDefault();},假);