ProgramingTip

jQuery : 일시적으로 스타일을 변경 한 다음 원래 클래스로 그대로

bestdevel 2020. 12. 26. 15:59
반응형

jQuery : 일시적으로 스타일을 변경 한 다음 원래 클래스로 그대로


testThing이라는 클래스가 가정합니다.

.testThing
{
   background-color:#000000;
   float:left;
   height:50px;
   width:50px;
}

그리고 버튼 클릭으로 해당 클래스의 컨트롤에 대한 배경색 변경을 테스트 할 수 있기 때문에 원합니다.

function setColor(someColor) 
{
   jQuery('.testThing').css('background-color', someColor);
}

하지만 사용자가 클래스의 내용에 따라 원래 색상 (다른 버튼 클릭)으로 존재 할 수 있기를 바랍니다.

function resetClass()
{
   jQuery('#currentColor').removeClass('testThing');
   jQuery('#currentColor').addClass('testThing');
}

이것이 작동하는 것처럼 보이지만 (Albiet는이 작업을 수행하는 가장 좋은 방법이 아닙니다) 컨트롤의 배경색이 해당 클래스에있는 원래 값으로 표시되지 않습니다.

이제 추가 제거가 제거되지 않는 이유를 알아 내거나 더 나은 방법을 찾아야합니다 ... 클래스를 제거하고 읽는 것이 어리석은 것처럼 보이지만


Jquery는 CSS 파일에있는 것보다 우선 순위가 높은 스타일 속성에 CSS를 추가합니다. 해당 함수로 CSS 문서를 변경하지 않는 클래스를 추가, 제거 및 추가해도 전혀 수정되지 않은 효과가 없습니다!

같은 기능을 사용하지만 이번에는 배경색을 검은 색으로 설정합니다.

function reset(this)
{
  $(this).css('background-color', '#000000');
}

또는 표시 스타일 속성을 제거하십시오.

function reset(this)
{
  $(this).removeAttr('style');
}

다음과 같이 사용자 정의 스타일을 제거 할 수 있습니다.

// set
$(this).css('background-color', '#000000');

// reset
$(this).css('background-color', '');

어때 toggleClass("testThing")? 날씨 속성이 둘 이상있을 때 사용합니다.

http://api.jquery.com/toggleClass/


변경하려는 스타일을 재정의하는 다른 클래스를 추가 한 다음 제거하는 것이 좋습니다. js 내부의 하드 코딩 스타일 정보를 능가합니다. 유일한 문제는 추가 된 클래스의 순서가 더 높은지 확인하여 요소가 기존 클래스가 아닌 스타일을 가져 오기해야한다는 것입니다.

참조 URL : https://stackoverflow.com/questions/1053418/jquery-temporarily-change-a-style-then-reset-to-original-class

반응형