2012-06-17 3 views
16

웹 환경에서 개발하기 위해 jQuery를 사용하고 있습니다.앵커에 jquery 트리거 호버

나는 사람들의

$("#a#trigger").trigger('mouseenter'); 
$("#a#trigger").trigger('hover'); 
$("#a#trigger").trigger('mouseover'); 

모든 3 내가 가진 호버 기능을 활성화하기 위해 노력하지 않는 이유를 알고 싶습니다.

$(function() { 


     $('a#trigger').hover(function(e) { 
      $('div#pop-up').show(); 

      }, function() { 
      $('div#pop-up').hide(); 
     }); 

    }); 

     }); 

a#trigger는 앵커의 이름이고, #pop-up 내 웹에서 div 요소이다.

문제는 FullCalendar 플러그인에서 일부 이벤트에 마우스를 올려 놓고 해당 기능이 작동하지 않는다는 것입니다. 감사합니다. .

+6

셀렉터에서 ID 앞에 태그 이름을 사용하지 않으면 ID 만 사용하는 것보다 효율성이 떨어집니다. – charlietfl

답변

61

당신이 올바른 궤도에 문제가 선택기에서 추가 #, 그냥 첫 번째 해시 제거 :

$("a#trigger").trigger('mouseenter'); 

주 이후 그 ID는 고유해야하며 요소 유형을 지정할 필요가 없으므로 $('#trigger')이 더 효율적입니다.

1.9에서 제거, jQuery를 1.8에서 사용되지 않는 : 문자열 "mouseenter mouseleave"을위한 속기로 사용되는 이름 "hover"

또한 있습니다. 이 두 이벤트에 대해 단일 이벤트 처리기를 연결하고 처리기는 mouseenter 또는 mouseleave인지 확인하기 위해 event.type을 검사해야합니다. "hover" 가상 이벤트 이름과 하나 또는 두 개의 기능을 허용하는 .hover() 메서드를 혼동하지 마십시오.

+5

프로그래밍이 25 시간이 지난 후에도 눈이 멀었습니다. 정말 고마워요. 그리고 그 길에 Mouseenter가 있습니다. 작동하지 않습니다. @undefined –

+0

@OriGavrielRefael 당신은 환영합니다 :) – undefined

+0

왜 나는 어떻게'trigger (mouseenter) '를 사용하여 실패했는지 모르겠지만' .hover' 클래스를 호출하고'addClass ('hover')'를 호출하십시오. – Liber

8

jQuery 선택기는 예 :

$('a#trigger'); 

대신 선택기에서 # ID가 일치 jQuery를에서는 $('#a#trigger');

. 이 경우 trigger은 ID이지만 a은 HTML 요소이며 접두어가 필요하지 않습니다.

귀하의 최종 코드는 다음과 같습니다

$("a#trigger").trigger('mouseenter'); 
$("a#trigger").trigger('hover'); 
$("a#trigger").trigger('mouseover');