2012-06-09 4 views
2

CSS를 사용하여 특정 요소에 마우스 오버 상태를 할당했습니다. 특정 이벤트 후 jQuery를 사용하여 해당 호버 상태를 변경하려고합니다. 변경하고 싶습니다 : CSS 파일에서 언급 한 호버 클래스 선택기. 나는 .hover 함수를 사용하여 구현할 수 있지만 내 응용 프로그램에는 적합하지 않기 때문에 사용하지 않으려 고합니다. 내 응용 프로그램에서 호버 상태의 변경은 특정 시간 동안 해당 호버 이벤트를 바인딩 해제해야한다는 것을 의미합니다. 하지만 내 애플 리케이션에서 많은 조건부 모듈이 어디에 내가이 바인딩 이벤트를 호출해야합니다. 내가 원하지 않는 것을 바인딩 해제하는 많은 비효율적 인 호출.호버 기능을 사용하지 않고 호버 상태 jQuery를 변경 하시겠습니까?

elem { 
    width:10px; 
} 
elem:hover { 
    width:20px; 
} 

나는 20px to 40px를 말에서 hover 상태의 폭을 변경하고 싶습니다. 나는 .css('width','100px')과 같은 단순한 것을 사용하고 싶지만,이 함수를 호출하는 방법은 :hover selector이다.

+0

CSS의 'elem : hover' 규칙을 변경할 수 있습니까? 나는'hover()'가 당신이 적용하는 다른 어떤 방법보다 효율적이지 않을 것이라고 생각합니다. –

+0

왜이 목표에'CSS '를 사용하지 않습니까? –

+0

@David, 나는 호버()가 직접적인 의미에서 비효율적이라는 말은 아니다. 실제로 내 애플 리케이션에서 나는'hover, focus, active'와 같은 일을해야한다. 그래서 bind 나 unbind를 여러 번 호출하는 대신 하나 또는 두 단계로 이것을 단순화하는 방법이 있습니다. 클래스 추가 또는 제거와 같은 것일 수도 있습니다. –

답변

2

지금까지 내가 아는 한, 당신은 단지 호버 이벤트에 가져가 영향을 미칠 수 있으므로 기본적으로 할 때, 당신은 동적으로 주어진 요소에 CSS 클래스를 할당 addClassremoveClass를 사용할 수있는 대안으로

$('#selector').hover( 
    function() { $(this).css('width','100px'); }, 
    function() { $(this).css('width','10px'); } 
}); 

$('#selector').addClass('hovered'); 

을 당신이 당신의 요소는 당신이 정상적인 수업이 갖고 싶어했다 : 공중 선회 CSS 클래스를 가지고 당신의 요소를 원하는 당신이 할

$('#selector').removeClass('hovered'); 

이것은 실제로 호버 (hover) 이벤트를 대체하지는 않지만 원하는 경우 언제든지 CSS 클래스를 변경할 수 있습니다.

+0

호버 (hover) 상태를 변경하기위한 클래스 추가 또는 제거의 예를들 수 있습니까? –

+0

내 대답을 편집했습니다. CSS 클래스를 추가하거나 제거하는 것은 마우스 오버 상태에 의존하지 않으므로 언제든지 사용할 수 있습니다. – Zbigniew

+0

이 클래스는 hover 상태가 아닌 selector를 클래스에 추가합니다. 'hovered' 클래스에서 언급 한 css도 실제로 모든 상태에 대한 비 호버 상태에 영향을 미칩니다. –

1

당신은 ELEM 우선 다른 스타일 시트를로드 할 수 : 호버 정의 (또는 머리 스타일 노드를 추가)하고

elem:hover { 
    width: 100px !important; 
} 

Here's a question to that effect.

(지속적 바인딩, 바인딩 해제 호버 이벤트가 의심스러운 소리,하지만 이 질문을 게시하게 만든 행동 자체가 문제가 아닌지 고려해 볼 수 있습니다.

+0

실제로 작동합니다. 그러나 @mediaqueries를 사용하여 동일한 작업을 수행 할 수 있기를 바랍니다. 나는 가능합니까? –

0

jQuery를 사용하여 클래스를 추가 할 수 있습니다. jQuery에는 사용자의 c ss.

elem { 
    width:10px; 
} 
elem:hover { 
    width:20px; 
} 
elem.jsApplied:hover { 
    width:40px; 
} 
+0

그리고'elem.jsApplied {width : 40px; }' . 내가 원하는 것은 마우스를 올리면 클래스를 추가하는 것입니다. 나만 공중 선회 너비를 변경하고 싶다. –