2011-11-26 5 views
0

마이너스 마진을 적용하여 표시하는 페이지 아래쪽에 메시지 패널이 있습니다. 가 열릴 때, 나는 그것을 좋아하는 것 중 하나 (둘 중 첫번째) :click() 및 setTimeout 문제

  1. 닫기 사용자가 클릭 할 때 # 패널 닫기 (가 열려있을 때이 패널에 너무 만 볼 수 있습니다)

    또는 닫기

  2. 6 초 후에

나는 오프닝을 시작하고 반복적으로 닫을 때까지이 작품을 코드 - 다음 타이밍이 잘못. 나는 내가 클릭으로 패널을 닫은 경우 setTimeout을 취소 할 필요가 있다고 생각하지만 작동하도록 할 수는 없다.

$("#button").click(function() { 
    messagePanel.animate({ 
     marginTop: '-50px' //open 
    }, 600); 

    setTimeout(function(){ 
     messagePanel.animate({ 
      marginTop: '0px' //close 
     }, 600); 
    },6000) 

}); 

$('#panel-close').click(function() { 
    messagePanel.animate({ 
     marginTop: '0px' //close 
    }, 600); 
}); 

은 어떤 도움 감사합니다!

+1

http://stackoverflow.com/questions/3015319/jquery-javascript-settimeout-cleartimeout – mplungjan

답변

0

setTimeout 이벤트를 취소해야하는 경우 setTimeout 함수를 사용하여 timeoutID를 반환해야합니다.

var timeoutId; 
timeoutId = setTimeout(function() {...}); 
$('#panel').click(function() { 
    clearTimeout(timeoutId); 
} 

더 자세히 위해 https://developer.mozilla.org/en/DOM/window.clearTimeout를 참조

+0

감사합니다 - 당신은 - 정말 감사! –

+0

누군가가 링크가 사라지 듯이 클릭하면 실수로 통지 아래의 내용을 클릭 할 수 있도록 마우스를 올려 놓은 상태에서 알림을 열어 두는 것이 좋습니다. 그렇게하려면 타임 아웃을 지우는 알림에 onmouseover 이벤트를 추가하고 다시 설정하는 onmouseout 이벤트를 추가하십시오. –

+0

@KaeVerens - 제안 해 주셔서 감사합니다. 예. 분명히 역시 원합니다.하지만 운이 좋지는 않습니다. 내가 그것에 대해 어떻게 생각해? –