2011-11-01 2 views
0

왜이 기능이 작동하지 않는지 설명 할 수 있습니까?jQuery 지연이 마우스 아웃에서 작동하지 않습니다.

jQuery('.right-et-tooltip').delay(800).mouseout(function(){ 
     jQuery(this).find('.right-et-tooltip-box').animate({ opacity: 'hide', left: '-100px' }, 30); 
}); 

전혀 지연이 없습니다. 마우스가 꺼지 자마자 붐이 사라집니다.

감사합니다. 몇 가지 시도해 봤지만 너무 실망했습니다.

+0

당신은뿐만 아니라 HTML을 제공 할 수 있습니다. 나는 당신이 jsfiddle.net에 그것을 버리라고 제안 할 것이다 – hafichuk

+0

http://jsfiddle.net/zGtBN/ – oneadvent

+0

아, 그렇지만 거기서 일할 수는 없다.확실하지 않다 무엇 – oneadvent

답변

1

지연은 jQuery 선택기에 바인딩 되었기 때문에 아무 것도하지 않고 mouseout 핸들러 내의 함수가 아닙니다.

이 대신 ... 적용되는 보정

jQuery('.right-et-tooltip').mouseout(function(){ 
     jQuery(this).find('.right-et-tooltip-box').delay(800).animate({ opacity: 'hide', left: '-100px' }, 30); 
}); 

귀하의 jsFiddle ...

http://jsfiddle.net/zGtBN/2/


EDIT (보조 노트) 시도 :

우리에게 훨씬 좋을 것입니다. 마우스가 움직이는 동안 빠른 깜박임을 유발하는 경향이있는 mouseover & mouseout 방법이 아닌 mouseenter & mouseleave 방법을 사용하십시오. 여기 .hover() 방법에 insterted

Then you can simply combine the mouseenter and mouseleave handlers into one by using the jQuery .hover() method.

귀하의 똑같은 두 가지 기능 ...

http://jsfiddle.net/zGtBN/3/


편집 2 : 당신이 때

전에 다시 입력 떠나는 애니메이션이 완료되고, 애니메이션이 완성됩니다. 내가 대기열에있어. 실제로 &을 여러 번 열어두면 정지하기 전에 모든 애니메이션을 깜박 거리게 할 수 있습니다.

최대 적재하고 온다 새로운 문제를 만들지 애니메이션 대기열을 방지하기 위해 온/오프 mouseentermouseleave 지연이 같은 mouseenter 기능에 대한 use a jQuery .stop(true, false) ...의

jQuery(this).find('.right-et-tooltip-box').stop(true,false).animate({ opacity: 'show', left: '-100px' }, 30); 

때문에, mouseleave 애니메이션을 즉시 중지합니다. "clearQueue"옵션에있는 true 옵션은 애니메이션 대기열을 지우고 "jumpToEnd"옵션에있는 false 옵션은 현재 애니메이션을 즉시 완료하는 대신 중지시킵니다.

수정 데모 ...

http://jsfiddle.net/zGtBN/4/

+0

위대한, 그리고 나는 mouseenter와 mouseleave에 그 변화를 만들었다, 그것은 아직도 깜박 거린다. 그러나 되돌아 온다. .. 나는 그것을하지 않는 길을 발견 할 것이다라고 확신한다. 내가 '떠난다'고해서 깜박이는 것에 대한 지연이 다시 시작된다는 것을 보여주기 때문에 그렇게합니다. – oneadvent

+0

@oneadvent : 그건 다른 문제입니다. 애니메이션이 끝나기 전에 들어가고 떠날 때 애니메이션이 대기하고 있기 때문입니다. jQuery의'.stop()'메서드를 사용하여 애니메이션을 멈추고 큐를 지운다. 데모에 대한 최신 편집을보십시오. – Sparky

+1

와우 멋진 와우. 나는 그것을 좋아한다, 다시 한번 감사드립니다! – oneadvent

관련 문제