2010-08-10
jquery removeClass 를 이용해서 css sprite 교체하...
css sprite 는 특정 DIV 에 CSS 스프라이트 클래스를 설정해서 배경 이미지를 보여주는 방식인데, 문제는 이전에 어떤 클래스 이름이 들어가 있는지 알 수 없다는 거다. 즉 정규식으로 클래스 이름을 검색해서 스프라이트 클래스만을 찾아서 지우고 새 스프라이트 클래스를 넣어야 한다.
.removeClass(function(index,class_str){
var class_list = class_str.split(' ');
for ( var i = 0 ; i < class_list.length ; i ++ ) {
var cls = class_list[i];
if ( cls.match(/unit-.+?_(L|R)/) ) {
return cls;
}
}
}
주의할 점은, 이 콜백 함수가 $.each 처럼 기존 클래스 명 하나하나마다 호출되는게 아니라, 그냥 공백으로 구분된 클래스 이름 문자열을 파라미터로 넘겨서 한번만 실행된다는 점이다. (index 는 왜 있는 거지;;;)