2011-11-30 2 views
0

클래스의 요소가 여러 개 있습니다. 마우스를 가져 가면 div로 둘러 싸서 주위에 빨간색 테두리가 있어야합니다. 그것은 작동하지만, 어떻게 활성 요소, 내가 떠들고있는 하나, 모든 요소가 아니라 .test 클래스를 래핑하는 것이 가능합니까?jQuery 마우스를 올리면 활성 요소 만

$(".test").hover(function() { 
$(".sample").wrap('<div style="border: 1px solid red;" />'); 
} 
+1

일부 로직과 함께 원하는 요소를 선택 했습니까? 함수 내의 'this'는 현재 선택된 요소를 가리 킵니다. jQuery 메서드를 수행하기 위해'$ (this) '를 사용하고 싶을 것이다. –

+1

관련 HTML을 포함하는 경우이를 수행하는 방법에 대한 더 좋은 제안을 얻을 수 있습니다. 우리는 경계가 부모, 자식, 형제, 같은 객체 등을 가리키며 상대하는 위치에 대해 알지 못합니다. 그리고 그것은 최선의 코드를 선택하는 것과 관련이 있습니다. – jfriend00

답변

0

잘 모르겠어요를 당신이 찾고있는 것이지만 이것은 당신의 모든 사용 가능한 요소들을 클래스 테스트와 함께 포장 할 것입니다.

$(".test:enabled").hover(function() { 
    $(this).wrap('<div style="border: 1px solid red;" />'); 
}); 
0

함수에 $ (this)를 사용해야합니다. $ (this)는 현재 hallow 된 요소를 나타냅니다. 내가 제대로 이해하면

$(".test").hover(function() { 
    $(this).wrap('<div style="border: 1px solid red;" />'); 
}); 
0

사용 $ (이)

$(".test").hover(function() { 
$(this).wrap('<div style="border: 1px solid red;" />'); 
} 
0

, 당신은 현재 공중 선회 항목 내에서만 .sample을 선택합니다. 그렇다면 this question을 참조하십시오. JQuery는 두 번째 매개 변수를 허용합니다.

$(".test").hover(function() { 
    $(".sample",this).wrap('<div style="border: 1px solid red;" />'); 
} 
0

HTML을 포함하면 도움이되는 방법이 조금 더 분명합니다. class="sample"이있는 객체가 부모 객체라고 가정합니다. 당신이 계속해서 또 다시 그것을 포장하지 유혹 중지하거나 코드를 넣으면

$(".test").hover(function() { 
$(this).closest(".sample").wrap('<div style="border: 1px solid red;" />'); 
}); 

당신은 물론이 랩을 해제해야합니다.

테두리에 기존 개체를 사용하고 마우스를 올리거나 펼치면 클래스 또는 스타일을 변경하는 것이 좋습니다.

$(".test").hover(function() { 
    $(this).addClass("active"); 
}, function() { 
    $(this).removeClass("active"); 
}); 

을 그리고, 다음 CSS 규칙이 있습니다 : 나는 당신의 HTML이 무엇인지 알 수 없기 때문에, 나는 단지 사용될 수있는 것을 추측 할 수있다이 경우

.active {border: 1px solid red;} 
관련 문제