반응형
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 내부의 하드 코딩 스타일 정보를 능가합니다. 유일한 문제는 추가 된 클래스의 순서가 더 높은지 확인하여 요소가 기존 클래스가 아닌 스타일을 가져 오기해야한다는 것입니다.
반응형
'ProgramingTip' 카테고리의 다른 글
AppCompat 21에서 Light.DarkActionBar 테마를 사용하여 ActionBar 제목 텍스트 색상 변경 (0) | 2020.12.26 |
---|---|
모든 테이블과 필드를 MYSQL의 utf-8-bin 데이터 정렬로 변경하는 펼쳐보기 (0) | 2020.12.26 |
루비에서 날짜의 요일을 어떻게 계산할 수 있습니까? (0) | 2020.12.26 |
여러 줄이있는 UILabel에서 자동 축소 (0) | 2020.12.26 |
imagebutton으로 listview 행을 클릭 할 수 없습니다. (0) | 2020.12.26 |