2013-04-06 3 views
0

JQuery와에 setInterval을에 사용자 정의 함수를 추가합니다,하지만 난이 동작하지 않습니다 내 코드가 지저분 littlebit 그래서 내가, JQuery와 새로운 해요내가 여기에 바이올린을 만든 ... 내가 상상할 수있는 모든 노력을

cont.bind('mouseenter', function() { 
    active = setInterval(moveit, 20); // WHAT IS WRONG HERE? 
     }).bind('mouseleave', function(){ 
    active && clearInterval(active); 
}); 

function moveit(e) { 
    var windowHeight = $(window).height(); 
    var contWidth = cont.width(); 
    var galWidth = lastImg[0].offsetLeft + lastImg.outerWidth(); 
    var left = (e.pageX - cont.offset().left) * (galWidth - contWidth)/contWidth; 
    cont.scrollLeft(left); 
}; 

를 마우스 오버 끊임없이 내 moveit 기능을 실행 (내가 MouseMove 이벤트에 그것을 할 경우 갤러리 클릭에 크기가 조정 때, 나는 문제가있다). 당신이 내 문제를 이해하고 아마 나를 도울 수 있기를 바랍니다.

고맙다는 :)

그런 식으로 일을 할 때 이벤트를 전달해야

답변

0

, 그렇지 않으면 e.pageXmoveit() 내부에 정의되지 않는다 : 같은 e.pageX의 값이 동일 할 것

물론
var active; 

cont.on({ 
    mouseenter : function(event) { 
     active = setInterval(function() { 
      moveit(event); 
     }, 20); 
    }, 
    mouseleave: function(){ 
     clearInterval(active); 
    } 
}); 

, 마우스가 요소를 입력하면 각 간격 반복마다 업데이트되지 않으므로 한 번만 이동합니다.

FIDDLE

+0

좋아요, 감사합니다 아주 많이 adeneo! 그것은 올바른 방향으로 가고 있지만, 나는 그것이 내 기능을 끊임없이 유발할 것이라고 생각했다. 그러나 그것은 단지 한 번만 ... 나는 잘못된 길을 가고 있는가? –

+0

함수를 계속해서 트리거하지만'event.pageX'의 값은 항상 같기 때문에 아무 것도 움직이지 않습니다. – adeneo

+0

나는 그걸 어떻게 할 것인지 힌트를 줄 수 있니? ... 미안, 나는 이것에 대해 새로운 생각이 전혀 없다. ( –