>  기사  >  웹 프론트엔드  >  jquery 마우스가 mouseout을 벗어나면 트랜잭션이 처리됩니다. 마우스가 하위 요소에 있을 때 영향을 받지 않도록 제외하는 방법은 무엇입니까?

jquery 마우스가 mouseout을 벗어나면 트랜잭션이 처리됩니다. 마우스가 하위 요소에 있을 때 영향을 받지 않도록 제외하는 방법은 무엇입니까?

黄舟
黄舟원래의
2017-06-28 11:25:441295검색

jquery는 마우스가 나갈 때(mouseout) 트랜잭션을 처리하지만 영향을 주지 않고 하위 요소에서 마우스를 제외하는 방법

<div class="a"><div class="a1" style="display:none;"></div></div>
jquery中有mouseout离开时
$(".a").hover(function(){
$(this).find(".a1").css("display","block");
});	
$(".a").mouseout(function(){
$(this).find(".a1").css("display","none");	
});

위에서 마우스가 하위 요소에 있을 때 이는 현재 DIV를 떠나는 것과 같습니다. 이것을 어떻게 피할 수 있습니까?

이 효과를 얻으려면 jQuery 이벤트 - mouseleave() 메서드를 사용할 수 있습니다.

정의 및 사용법

  마우스 포인터가 요소를 벗어나면 mouseleave 이벤트가 발생합니다.

 이 이벤트는 mouseenter 이벤트와 함께 가장 자주 사용됩니다.

 mouseleave() 메서드는 mouseleave 이벤트를 트리거하거나 mouseleave 이벤트가 발생할 때 실행할 함수를 지정합니다.

 참고: mouseout 이벤트와 달리 mouseleave 이벤트는 마우스 포인터가 선택한 요소를 떠날 때만 트리거됩니다. 마우스 포인터가 하위 요소를 벗어나면 mouseout 이벤트도 트리거됩니다. 데모를 보려면 아래 예를 참조하세요.

Grammar

$(selector).mouseleave()

Example

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
    x=0;
    y=0;
    $(document).ready(function(){
          $("div.out").mouseout(function(){
                $(".out span").text(x+=1);
          });
          $("div.leave").mouseleave(function(){
                $(".leave span").text(y+=1);
          });
    });
</script>
</head>
<body>
    <p>不论鼠标指针离开被选元素还是任何子元素,都会触发 mouseout 事件。</p>
    <p>只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。</p>
    <div class="out" style="background-color:lightgray;padding:20px;width:40%;float:left">
        <h2 style="background-color:white;">被触发的 Mouseout 事件:<span></span></h2>
    </div>
    <div class="leave" style="background-color:lightgray;padding:20px;width:40%;float:right">
        <h2 style="background-color:white;">被触发的 Mouseleave 事件:<span></span></h2>
    </div>
</body>
</html>

위층에 기능이 하나밖에 없을 때 꼭 이렇게 해야 하나요? 코드를 다음

$(".a").hover(
function(){
$(this).find(".a1").css("display","block");
},
function(){
$(this).find(".a1").css("display","none");
}
);

또는

$(".a").mouseover(function(){
$(this).find(".a1").css("display","block");
});
$(".a").mouseleave(function(){
$(this).find(".a1").css("display","none");
});
로 변경하세요.

위 내용은 jquery 마우스가 mouseout을 벗어나면 트랜잭션이 처리됩니다. 마우스가 하위 요소에 있을 때 영향을 받지 않도록 제외하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.