我有一个定义的点击,除了两个之外,所有点都可以。我按如下方式绑定click事件:
$('#next_item').bind(myDown,function (e) {
config.scrolling = true;
config.scrollTimer = setInterval(function (e) {
if(!config.scrolling) return false;
if(myScroll.x >= myScroll.maxScrollX){
myScroll.scrollTo((config.itemWidth+config.itemBoxSpacing), 0, 400, true);
}else{
config.scrolling=false;
clearInterval(config.scrollTimer);
}
}, 100);
return false;
});
我正在使用iScroll 4。 #next_item
用于滚动动态添加的div onclick。 setInterval function()
被使用,因为在单击时我想一次滚动一个div而在mousedown我希望div滚动直到我做mouseup。现在问题是在黑莓手册中一次点击多次一个div滚动但在ipad,Android平板电脑和桌面浏览器(包括IE8)中工作正常。此外,当我在blacberry playbook中进行mousedown时,div继续滚动直到结束并且不会立即停止鼠标,而对于IE8,div停止并且滚动似乎setInterval无法正常工作。需要做些哪些改变才能在IE8和黑莓手册中使用
更新:
var isIOS = config.isIpad || config.isIphone || config.isAndroid;
var myDown = isIOS ? "touchstart" : "mousedown";
var myUp = isIOS ? "touchend" : "mouseup";
$('#next_item').bind(myUp,function (e) {
config.scrolling = false;
clearInterval(config.scrollTimer);
return false;
});
答案 0 :(得分:0)
我解决了黑莓问题。我不得不改变我的一行代码。
var isIOS = 'ontouchstart' in document.documentElement; /*This detects all touch devices*/
在我之前的代码中,我没有检测到黑莓手册,因此它收到了mousedown事件,导致触摸设备的默认touchstart
事件与mousedown
事件一起触发,从而导致意外结果。
我仍然无法解决IE8问题。请有人建议为IE8做些什么。