2012-06-29 4 views
1

그래서 서로 옆에 4 개의 원이 생기고 하나에서 다른쪽으로 마우스를 움직이면이 코드가 활성화됩니다. 그러나 당신이 원에서 벗어나 이동할 때만 활성화 할 수 있습니다. 원에서. 다른 곳으로 이동할 때가 아닙니다. 고마워요 여러분!jQuery가 여러 항목으로 커서 이동

$('.circle').hover(
    function() { 
     $(this).parent().animate({marginLeft: '-=25px'}, 1000); 
    }, 
    function() { 
     $(this).parent().stop(true, true).animate({marginLeft: '+=25px'}, 1000); 
    } 
); 
+0

이벤트를 원이 아닌 네 개의 모든 원의 부모로 등록 하시겠습니까? – TheZ

+0

하지만 실제로는 서클이므로 서클 외부에 있지만 부모 내부에서는 활성화하지 않으려합니다. – dezman

+0

그런 다음 부울을 사용합니다. 이미 전환 된 경우 true이고 그렇지 않은 경우 false입니다. 애니메이션을 적용 할 때와 적용하지 않을 때를 결정합니다. – TheZ

답변

1

체크 아웃이 바이올린을 ... http://jsfiddle.net/WxNdN/3/

e.relatedTarget는 당신에게 당신이 입력하거나 남아있는 요소를 제공해야합니다. 애니메이션을 실행하기 전에 해당 클래스를 확인하여 원인지 확인하십시오.

$('.circle').hover(
    function (e) { 

     if(!$(e.relatedTarget).hasClass('circle')) 
     { 
      console.log('entering'); 
     } 
    }, 
    function (e) { 

     if(!$(e.relatedTarget).hasClass('circle')) 
     { 
      console.log('leaving'); 
     } 
    } 
);​ 
+0

내 서클 사이에 공간이 있다는 것을 제외하고는 위대합니다. 따라서 사용자가 0.25 초 이내에 다음 서클 위로 이동할 것인지 확인하기 위해 지연() 또는 기타 지연이 필요하다고 생각합니다. – dezman

+0

서클의 공개적인 예가 있습니까? 나는 내일 함께 멋진 것을 채찍질 할 수 있을지 모른다. – Mike

+0

아, 그러면 바이올린을 만드세요, 고마워요! – dezman

0

HTML을 보지 않고, 난 당신이 컨테이너에 호버 이벤트를 넣어 다음 원 클래스의 모든 요소가 컨테이너 내에서 랩 할 필요가 있고, 것 같은데요. 그래서

<div id="container"> 
    <div class="circle"></div> 
    <div class="circle"></div> 
    <div class="circle"></div> 
    <div class="circle"></div> 
</div> 

같은 다음

$('#container').hover(functions...) 

당신은 아마 $(this).parent()을 변경해야 할 것입니다하지만 현재의 HTML 구조를 보지 않고 말할 어렵다.

관련 문제