2013-04-12 3 views
3

on 이벤트를 사용하여 POSTED 인 링크를 가리키고 있는지 확인하는 실행중인 이벤트가 있습니다.jQuery 'on'이벤트가 ON이 아닌지 확인

$(document).on("mouseenter","#hover",function() { 
    load(); 

    $("#sidebar").fadeToggle("slow"); 
    $("#sidebar").html(''); 

    $.post("ajax_search.php?type=sidebar", { sidebar : $("#search").val() }, function(get_data) { 
     stop_load(); 

     $("#sidebar").html(get_data); 
    }); 
}); 

가 어떻게 당신이 #hover을 유혹 중지 할 때 그렇게, #sidebar는 숨길해야합니까 질문? #hover을 게시 중이므로 그 이유로 ON 이벤트를 사용합니다.

notOn이 있습니까?

감사합니다.

+0

jQuery의'mouseout' 또는'mouseleave' 이벤트가 도움이 될 수 있습니다. http://api.jquery.com/mouseout/ – showdev

+0

맨 먼저, **'.on()'은 이벤트가 아닙니다 **. '.on()'은 이벤트 핸들러의 표준 첨부를 허용하는 jQuery 메소드입니다. 위의 코드에서 'mouseenter'는 이벤트입니다. –

답변

5

아니요, 아니요, notOn은 없습니다.

그러나 mouseenter에 대한 답변 : mouseleave이 있습니다.

$(document).on("mouseenter","#hover",function() { 
    $("#sidebar").fadeToggle("slow"); 
}); 
+0

어리석은 저, 당신은 절대적으로 옳습니다. 감사! ^^ ^^ ;;; –

2

당신이 그것을보고하면 하나의 마우스 입력하고 다른 때 마우스 휴가 두 개의 이벤트 핸들러를 사용할 수있는 hover 이벤트, 그것을 달성하기

또 다른 방법은

$(".selector").on(
{ 
mouseenter: function() 
{ 
    //stuff to do on mouseover 
}, 
mouseleave: function() 
{ 
    //stuff to do on mouseleave 
} 
}); 
+0

나는 옳지 않을 수도 있지만, 그는 요소를 동적으로 추가하기 때문에 그가 .on()을 사용하고 있다고 생각하고, 동적으로 추가 된 내용으로 재생을 많이 올려 놓습니다. (5 월 잘못 될 수 있음) – iConnor

+0

+1에 대한 편집 – iConnor

1

같은 것입니다 mouseleave 이벤트를 사용해보세요.

$(document).on("mouseleave","#hover",function() { 
     //Code required to hide the sidebar. 
}); 

ht 또한 lazily 아약스 호출을 실행하고, 결과를 캐시하고, 한 번만로드되는지 확인하려고합니다.

또한 토글하는 방법에 의존하지 마십시오. 이벤트가 해결 된 순서가 뒤 떨어진 경우를 대비하여 mouseenter와 mouseleave에서 명시 적으로 fadeIn 및 fadeOut을 사용합니다.

1

notOn 방법이 없습니다. 그러나 다음 예제에서 mouseout 함수는 찾고있는 notOn처럼 작동합니다. 다음은 그 예입니다 :

$('#hover').on({ 
    mouseenter: function(){ 
     // perform operations when you're hovering on #hover element 
     $('#sidebar').fadeIn(); 
    }, 
    mouseout: function(){ 
     // perform operations when you stop hovering over #hover element  
     $('#sidebar').fadeOut();  
    } 
}); 
관련 문제