2012-01-04 4 views
0

jQuery에서 ID를 사용하지 않고 방금 만든 div를 알 수있는 방법이 있습니까? 사용자가 빨간색 켜져 사업부를 가리킬 경우id를 사용하지 않고 jquery로 hovered 요소를 식별합니까?

:

는 기본적으로 나는 다음과 같은 시나리오 같은 것을 가지고있다. 사용자가 다른 div를 가리키면 모든 div가 흰색으로 바뀌고 (기본적으로 모든 항목 재설정) 현재 표시된 div가 빨간색으로 바뀝니다. 그러나 사용자가 div를 빨간색으로 바꾸고 다시 같은 항목으로 돌려 놓으면 다시 흰색으로 이동 한 다음 빨간색으로 이동하지 않으려 고합니다. 당신이 마우스 오버시

$(this).removeClass(); 
+0

당신 [바이올린] (http://jsfiddle.net/) 그것을 할 수 있습니까? 도움이 훨씬 쉬워 질 것입니다. –

+0

정말 클래스가 아니므로 제거를 추가하고 싶습니다. 어쩌면 나쁜 예를 들었을 수도 있습니다. 본질적으로 상자에는 세 개의 상자가 포함되어 있으며이를 숨기거나 표시 할 수 있습니다. 마우스가 왼쪽 상자가 아닌 상자에 들어가면 모든 상자를 원래 상태로 재설정하고 싶습니다. 왼쪽 상자에 다시 들어가면 같은 상태로 남아 있어야합니다. –

+0

@ShadowWizard처럼 jsfiddle에 코드를 붙이십시오. – Alex

답변

0
다음

다른 해결책 : http://jsfiddle.net/adeneo/ep39L/1/

var last; 

$('div').mouseenter(function(e) { 
    var elm = $(e.target); 
    if (last != elm) { 
     $('div').css('background', 'white'); 
     elm.css('background', 'red'); 
    } 
    last=elm; 
    $('div').eq(2).html(last.index()+1); 
}); 
+0

나는 이것을 좋아한다, 건배 :) –

0

, 그것을 임시 클래스를 제공 마우스 오버가 다시있을 때 존재합니다. 그렇지 않으면 모든 div에서 클래스를 지 웁니다. 당신이 클래스를 사용하지 않을 경우 당신은 .data.removeData를 사용할 수 있습니다

$('div').on('mouseover', function() {  
    if (!$(this).hasClass('red')) { 
     $('div').removeClass('red'); 
    } 
    $(this).addClass('red'); 
}); 

JSFiddle Example

2

클래스를 추가하고 그 클래스 있는지 확인 : 당신이 그것을 사용 제거 할 준비가되면

$(this).addClass(); 

:

공중 선회
+0

downvote에 대한 특별한 이유가 있습니까? –

0

사용하지 :

HTML :

<div> 
    <span>1</span> 
    <span>2</span> 
    <span>3</span> 
</div> 

JS :

$("div span").click(function(){ 
    $(this).closest("div").find("span").not(this).css("background", "#fff"); 
    $(this).css("background", "#f00"); 
}); 
관련 문제