2017-01-18 2 views
-1

일부 요소 (심지어 element.onclick = null)의 이벤트를 사용 중지 할 수 없으므로 요소 이름을 변경하기로 결정했습니다.
나는 것만으로 시도 :자바 스크립트에서 스타일을 변경하지 않고 클래스 이름을 변경하는 중

element.className = "newOne"; 

그러나 그것은 스타일을 지워 대부분의 아마 때문에, 내 요소 사라지게했다.

TempStyles = element.styles.cssText; 
element.className = "newOne"; 
element.styles.cssText = tempStyles; 

내가 .cssText로하고 그것없이 모두 시도, 비 그들이 작품 :
내 두 번째 방법은 세 요소에 다시 복사 한 후 스타일을 저장하고 포함되어 있습니다.
!!! 내 제한 사항은 IE8 및 아니오 jQUERY입니다 !!!

+1

처음에 특정 요소에 이벤트를 어떻게 추가합니까? 문제를 재현하고 해결책을 도울 수 있도록 코드 "* [mcve] *"를 충분히 표시하십시오. 문제가 발생한 부분의 오류를 지적하십시오. –

+1

[EventTarget.removeEventListener()] (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener) 시도한 적이 있습니까? – Pete

+0

이전 클래스를 유지하려고 시도했지만 다른 클래스를 추가 할 수 있습니다. 보수? element.className = "oldClass newOne"; 그런 다음 CSS 파일의 모든 클래스 스타일을! important; 깃발 ... – Paul

답변

-1

이전에 클래스를 해당 HTML 요소에 기인 한 경우 element.className = "newOne"을 수행하면 다른 모든 클래스가 newOne으로 바뀌고 관련 스타일이 모두 대체됩니다. 당신이 당신에게 오래된 클래스와 각각의 스타일을 유지하려면

, 당신이 당신의 HTML 요소에 새 클래스를 추가해야합니다 :

element.className += " newOne"; 

참고하는 새 클래스 이름 앞에 여분의 공간. 새 클래스 이름을 이전 클래스와 구분해야하므로 oldClass newOne이 아닌 oldClassnewOne이 아닌 속성이 유지됩니다. 이렇게하면 요소에 두 개의 클래스가 추가됩니다.

+0

thx 도움을 요청하지만, 심지어 그것을 사용하지 못하도록 클래스 이름을 변경해야하므로 이전 이름을 지워야합니다. –

+0

@Arkadiusz 미안하지만, 나는 그 질문을 오해했다. 어떤 코드를 https://jsfiddle.net/ 또는 비슷한 형식으로 업로드하여 달성하고자하는 것을 더 잘 이해하고 무엇을 얻고 있는지 이해할 수 있습니까? –