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 는 왜 있는 거지;;;)


comments powered by Disqus