2012-02-26 1 views
0

jquery를 사용하여 interval에서 CSS 스타일을 변경하는 div 요소가 있습니다.CSS 스타일을 잠시 동안 변경하지 못하도록 요소를 비활성화 할 수 있습니까?

var i = 0; 

function changeStyle() { 

    $("#element").css("left",i+1); 

} 

setInterval("changeStyle()",500); 

요소가 스타일을 잠시 변경하지 않도록하려면 어떻게합니까? 거기에 아무것도 변경에서 요소를 해제 할 수 있도록 $("#element").stop(); 같은 기능이 있나요?

이 문제에 대한 다른 해결책은 필요하지 않습니다. stop() 기능과 같은 것이 있는지 알고 싶습니다.

+0

'에서는 setInterval()가'할 문자열 통과하지 마십시오하세요 - 대신 함수를 사용합니다 :'에서는 setInterval (ChangeStyle이라는, 500) '이나, 경우 'setInterval (function() {someFunc ('with', 'args');}, 500); ' – ThiefMaster

+0

문자열을 전달하는 것은 왜 잘못된가요? –

+0

'eval()'을 사용하는 것과 같습니다. 인수를 처리 할 때 정말 엉망이되어 자바 스크립트 삽입 구멍을 열 수 있습니다. – ThiefMaster

답변

1

가장 좋은 방법 !important CSS 규칙을 만드는 것입니다 :

// Lock the `left` style in a fixed state, say "0px" 
$('<style id="my-style">#element{left:0 !important;}</style>').appendTo('head'); 

현재 요소에 ID가없는 경우 임시 요소를 할당 할 수 있습니다. 요소가 다시 "잠금 해제"이어야
, 사용 :

$('#my-style').remove(); 
+0

참고 : 원래 코드를 수정할 수 없다고 가정했습니다. 미리 '