2010-02-18 8 views
56

하십시오, considere있는이 CSS 코드 :jQuery로 호버 상태를 강제 설정하는 방법?

a { color: #ffcc00; } 
a:hover { color: #ccff00; } 

이 HTML 코드 :

<a href="#" id="link">Link</a> 
<button id="btn">Click here</button> 

그리고 마지막으로,이 JS 코드 :

$("#btn").click(function() { 
    $("#link").trigger("hover"); 
}); 

내 링크 사용을하고 싶습니다 그 가상 클래스 : 버튼을 클릭 할 때 가리 키십시오. mousemove, mouseenter, hover 등의 이벤트를 실행하려고했지만 누구나 작동합니다. 나는 내 CSS 의사 클래스의 사용을 강제 할 주의 사항 :이 작업을 수행 할 방법을 알고

$("#link").css("color", "ccff00"); 

어떤 하나 사양을 가져와 같은 것을 사용하지? 정말 고마워.

답변

103

클래스를 사용해야하지만 걱정하지 않아도됩니다. 매우 간단합니다. 먼저 :hover 규칙을 물리적으로 잡힌 링크에 적용 할뿐만 아니라 클래스 이름이 hovered 인 링크에도 적용합니다. 당신이 #btn을 클릭하면

a:hover, a.hovered { color: #ccff00; } 

다음으로, 우리는 #link.hovered 클래스를 전환 할 수 있습니다.

$("#btn").click(function() { 
    $("#link").toggleClass("hovered"); 
}); 

링크가 이미 클래스에 있으면 제거됩니다. 클래스가 없으면 추가됩니다.

+0

#jonathan 잘 작동합니다. a.hovered를 추가하지 않고 같은 것을 구현하는 다른 방법이 있습니까? –

+0

@ArulSidthan은 마이크의 답을 확인합니다. '마우스 오버'대신 '마우스 오버'를 트리거하면 원하는 것을 수행합니다. – andyzinsser

+0

감사합니다 @andyzinsser 그 잘 작동합니다 :) –

24

또한 마우스 오버를 시도 할 수 있습니다.

$("#btn").click(function() { 
    $("#link").trigger("mouseover"); 
}); 

특정 시나리오에 맞는지 확실하지 않지만 다양한 경우에 마우스 오버 대신 마우스 오버가 성공했는지는 확실하지 않습니다.

+5

fwiw, 배경 이미지를 지정하는 : hover에 대한 스타일 규칙이 있으면 이미지를로드하지 못하는 것으로 나타났습니다. –

+10

mouseover는 CSS : hover와 다릅니다. 그래서 이것은 효과가 없을 것입니다. mouseover 이벤트가 무언가에 묶여있는 상황에서만 작동합니다. –

+0

재미있게 나는 계속해서 수업을 추가하는 여러 가지 방법을 시도해 왔지만 이것이 내 문제를 해결했다 ... 상황에 따른 유용한 답. – joshua

관련 문제