0

2 개를 제외한 모든 항목에서 원하는대로 작동하는 클릭이 정의되어 있습니다. 클릭 이벤트를 다음과 같이 바인딩합니다.IE8 및 블랙 베리 게임 북 javascript setInterval 함수가 제대로 작동하지 않습니다.

$('#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에서 mouseup을 할 때까지 div를 스크롤하기를 원하기 때문에 사용됩니다. 이제는 한 번의 클릭으로 한 번에 한 번에 두 번 스크롤 할 수 있지만, ipad, Android 태블릿 및 IE8을 포함한 데스크톱 브라우저에서 제대로 작동합니다. 또한 내가 blacberry 지침서에서 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

$ ('# next_item'). bind (myDown, myDown은 어디에서 왔습니까?) –

+0

@ AndréAlçadaPadez 코드를 업데이트했습니다. – user850234

답변

0

. 내 코드를 한 줄만 변경해야했습니다. 내 이전 코드에서

var isIOS = 'ontouchstart' in document.documentElement; /*This detects all touch devices*/ 

나 블랙 베리 각 검출되지 않았고 그래서 터치 장치가 mousedown 이벤트 때문에 예상치 못한 결과와 함께 트리거하기위한 기본 touchstart 이벤트 발생 MouseDown 이벤트를 수신한다.

여전히 IE8 문제를 해결할 수 없습니다. 누구든지 IE8을 위해 무엇을 제안하십시오.