2012-06-15 4 views
2

행에 마우스를 올려 놓고 모두 강조 표시하고 싶지만 일부 셀에 다른 배경이 있으므로 아래 코드에 문제가 있습니다. 잘 모든 모든 셀입니다tr onmouse events

<tr style="" onmouseover="this.style.background='Red';" onmouseout="this.style.background='#595959'" > 

같은 배경을 가지고 있지만 내가 셀을 클릭하면 그것을 강조하고 onmouseout="this.style.background='#595959'"는 항상 재설정됩니다.

onmouseout="this.style.background='currentCellBGColor" 
+0

내가 그것을 있다고 생각 것 특정 스타일을 저장하고 검색하는 것보다 클래스를 추가 및 제거하는 것이 더 쉽습니다. – j08691

답변

3

그것은 순수 CSS의 솔루션을 수행 할 수 있습니다

어떻게 같은 것을 변경할 수 있습니다. 어떤 자바 스크립트는 IE7을해야하는 경우 테이블 행에 onmosueover 클래스를 추가하고 제거하는 데 필요한 모든 다른 현대의 브라우저

tr:hover td { background-color:yellow } 
td.selected { background-color: green; } 
tr:hover td.selected { background-color: lime; } 

Fiddle

IE8 +에서 작동

순수 CSS의 솔루션을 필요로하지 않습니다 클래스 onmouseout.

tr:hover td, tr.hover td { background-color:yellow } 
td.selected { background-color: green; } 
tr:hover td.selected, tr.hover td.selected { background-color: lime; } 
+0

예상대로 작동하지 않습니다. 하나의 모든 행이 노란색으로 강조 표시되고 있기 때문에 마우스가 하나가 아닌 다른 행으로 강조 표시되고 전체 행 onlick에 대해 TR bgcolor를 설정하는 방법이 있습니까? –

+0

테이블이 다른 테이블의 TD와 함께 중첩되어 있기 때문에 작동하지 않는다고 가정합니다. –

+0

강조 표시하려는 테이블 하나만 대상으로 CSS 규칙을 적용하면 작동하지 않습니다. 규칙을보다 구체적으로 만드십시오. onclick의 경우 행에 클래스를 설정하는 JavaScript를 추가합니다. – epascarello

2

내가 그 CSS를 가져가 함께 만드는 더 나은 동의하더라도, 나는 자바 스크립트와 그것을 수행하는 방법 질문에 답변을 좋아합니다.

당신은 하나 개의 속성에 저장하고 복원하는 데 사용할 수 있습니다 :

<script> 
function setBackground(me, color) 
{ 
    me.setAttribute("data-oldback", me.style.background);  
    me.style.background=color; 
} 

function restoreBackground(me) 
{ 
    me.style.background = me.getAttribute("data-oldback"); 
}  
</script> 

<tr onmouseover="setBackground(this, 'Red');" 
    onmouseout="restoreBackground(this);" 
    style="background:blue;" > 

및 테스트 : http://jsfiddle.net/AdDgS/3/http://jsfiddle.net/AdDgS/4/