2012-05-20 2 views
0

안녕하세요.이 코드를 작성했으며 객체를 클릭 한 후 3000 밀리 초마다 개체를 이동한다고 가정합니다. 그러나 시간이 어떻게 작동하지 않는지, 아무도 내가 무엇을 말 할 수 있습니까? 잘못하고, 나는 다만 자바 스크립트를 배우고있다; 대단히 감사합니다.JavaScript를 클릭 한 후 SetInterval()이 작동하지 않습니다.

function move1() { 
    var im1 = document.images[0]; 
    im1.onclick = function() { 
     im1.style.left = parseInt(im1.style.left) + 1 + "px"; 
    } 
} 

function move2() { 
    var im2 = document.images[1]; 
    im2.onclick = function() { 
     im2.style.left = parseInt(im2.style.left) + 10 + "px"; 
    } 
} 

window.onload = function() { 
    setInterval(move1, 100); 
    setInterval(move2, 3000); 
} 
+0

음, 100 메가와 3000 밀리 초마다 클릭 핸들러를 추가하는 것은 이상합니다. –

+0

당신은 왜 이것을 할 것입니까? 새 클릭 이벤트를 추가해도 아무 것도 바뀌지 않습니다. – epascarello

+0

난 그냥 자바를하기 시작, 나는 –

답변

2

당신은 다른 방향으로하고 있습니다. 3000ms마다 클릭하면 이미지를 1px 이동시킬 수 있습니다.

function move(el, ms, px) { 
/* moves the el every ms by px 
returns the interval id to clear the movement */ 
    return setInterval(function() { 
     el.style.left = parseInt(el.style.left) + px + "px"; 
    }, ms); 
} 
window.onload = function() { 
    var im0 = document.images[0]; 
    var im1 = document.images[1]; 
    im0.onclick = function() { 
     move(im0, 100, 1); 
    }; 
    im1.onclick = function() { 
     move(im1, 3000, 10); 
    }; 
} 
+0

흠이 wroks 올 그럼 어떻게 내 교수가 나에게이 –

+0

기능을 이동했다() { \t \t VAR 메신저 = 문서 .images [0]; \t \t im.style.left = parseInt (im.style.left) +1 + "px"; \t} \t 창로드 = 함수() { \t \t하여 setInterval ("이동();", 1000); \t} –

+0

간격의 함수가 매번 요소를 실제로 이동하기 때문입니다. 그리고 간격은 onload를 시작합니다. BTW : 당신은 교수가 그가 매우 나쁜 코더라는 것을 알릴 수 있습니다 ... (캐싱 요소, 함수 전달) – Bergi

0

이동 기능은 클릭 할 때 이미지를 등록하지만 사용자가 클릭 할 때까지 실제로 움직이지는 않습니다. 당신이 원하는 것은 다음과 같습니다.

function move1() { 
    var im1 = document.images[0]; 
    im1.style.left = parseInt(im1.style.left) + 1 + "px"; 
} 

function move2() { 
    var im2 = document.images[1]; 
    im2.style.left = parseInt(im2.style.left) + 10 + "px"; 
} 

window.onload = function() { 
    var im2 = document.images[1]; 
    im2.onclick = function() { 
     setInterval(move2, 3000); 
    } 

    im1.onclick = function() { 
     setInterval(move1, 100); 
    } 
} 
+0

매우 –

+0

이 일을 주셔서 감사합니다 아직 잘 몰라요 완벽하게 너무 –

관련 문제