2010-07-28 5 views
0

JavaScript/JQuery로 약간 놀았으며 "수줍음"버튼 대신 단어가있는 p 태그 만 사용했습니다. bool goDown이 변경되지 않는 것을 제외하고는 정상적으로 작동하므로 항상 저하됩니다. 내 코드에 무슨 문제가 있습니까?JavaScript/JQuery 이벤트 처리기 문제

또한 VS2010에서 JavaScript 디버깅이 잘 작동하지 않는 것 같습니다. 알려진 문제입니까?

미리 감사드립니다.

if (typeof naarBeneden == 'undefined') { 
    var goDown = new Boolean(true); 
} 

$(document).ready(function() { 

    $(".moveme").animate({ "left": "+=500px" 
    }, 2000); 
    $(".moveme").hover(move()); 
}); 


function move() { 
    if (goDown) { 
     $(".moveme").hover(function() { 
      $(this).animate({ "top": "+=50px" }, 0) 
     }); 
     goDown = false; 
    } 
    else { 
     $(".moveme").hover(function() { 
      $(this).animate({ "top": "-=50px" }, 0) 
     }); 
     goDown = true; 
    } 
} 
+0

다음과 같이 : 'new Boolean'을 사용하지 마십시오. 그것은 당신이 원했던 어떤 것도하지 않으며'new Boolean (false)와 같은 이상한 행동을합니까? 1 : 0 '은'1 '이다. – bobince

답변

1

가장 큰 문제는 여기에 있습니다 : 당신은 핸들러로 move를 사용하지 move()를 호출하고

$(".moveme").hover(move()); 

,이 같이 괄호없이 필요합니다

$(".moveme").hover(move); 

도 그래도 각 hover 이벤트에 새로운 .hover() 처리기를 할당하고 있으며 이것이 실제로 당신이 무엇인지 의심 스럽습니다. 그것은 당신이 계신 정확히 얘기하기 어렵다, 그러나 나는이 그 것이다 생각 :

$(function() { 
    var goDown = typeof naarBeneden != 'undefined'; 
    $(".moveme").animate({ "left": "+=500px" }, 2000); 
       .hover(function() { 
       $(this).animate({ "top": goDown ? "+=50px" : "-=50px" }, 0); 
       }, function() { 
       $(this).animate({ "top": !goDown ? "+=50px" : "-=50px" }, 0); 
       }); 
}); 

이것은 할당 업 다음/가져 요소를두고는 않는 경우 goDown 경우 true입니다 애니메이션 아래로 goDownfalse 인 경우 역순으로 처리하십시오.