2010-08-21 3 views
7

CSS : .divIm { border:1px solid red; } 및 코드 줄 var borderColor = $(this).css("border-color")""을 반환합니다. 뭐가 잘못 되었 니? 아니면 jQuery를 사용하면 계산 된 스타일을 얻으려는 것이 맞을까요?jQuery.css()는 빨간색으로 설정된 테두리 색을 반환하지 않습니다.

업데이트 : 다음은 예상대로 작동하지 않는 코드입니다.

$("div.divIm").mouseover(function() { 
    var borderColor = $(this).css("border-color"); 
    debugger; 
}); 

답변

10

네 테두리가 서로 다른 색을 가질 수 있기 때문에 .css('border-color')은 어떤 색을 반환 할 수 있습니까 (모두 같더라도). 대부분의 경우에

모든 경계의 색상은 동일합니다, 그래서 당신은 이런 식으로 작업을 수행 할 수 있습니다

그래서
$('div.divIm').mouseover(function() { 
    var borderColor = $(this).css('border-left-color'); 
    debugger; 
}); 

당신은 왼쪽 테두리의 색상을 얻을 그것은 충분히해야합니다 당신의 필요합니다.

+0

조언 해 주셔서 감사합니다. – despero

-1
var borderColor = $(this).css("border-color") 

는이 이상을 표시해야합니다. 그러나 이것이 전부라면 문제는 this이 정의되어 있지 않다는 것입니다.

var borderColor = $('.divIm').css("border-color"); 

당신이 필요합니다.

+0

$ ("div.divIm") 마우스 오버 (함수() { VAR의 borderColor = $ ("divIm.") CSS ("테두리 컬러"). 디버거; }).; 제안한대로 시도했지만 문제가 해결되지 않았습니다. $ (this)는 올바른 객체를 반환합니다. 다른 방법이있을 수 있습니다 ... – despero

+0

이 경우 함수 내부에서 사용할 수 있습니다. Gert가 – Galen

+0

을 제안 했으므로 border-color 대신 borderColor를 사용해보십시오. 도움이되지 않았습니다. Dave는 정답을 제시했습니다. – despero

2

계산 된 스타일은 복수 계산 된 스타일을 포함하여 curStyles jQuery Plugin으로 얻을 수 있습니다.

+1

답변 해 주셔서 감사합니다. 플러그인을 사용하면 문제가 너무 무거워 보입니다. 네가 옳을지라도. – despero

+0

jQuery는 요청 된 스타일 속성이 요소에 설정되어 있지 않으면 계산 된 스타일을 반환합니다. 문서화되지 않은 방법 인 * $. curCSS (elem, style, force) *를 사용합니다. –

관련 문제