2014-09-09 2 views
0

div 안에 이미지가 있습니다. 버튼을 클릭하여 소스를 변경하길 원합니다. 지금은 어느 잘 작동이 있습니다 : 나는 모든 단일 소스의 변화를 정의 할 필요가 없도록jquery로 여러 속성을 서로 바꿔주는 클리너 코드

var isSwapped = false 

$('.swapbutton').click(function swap(){ 
    if (isSwapped == false){ 
     $('.img1').attr('src','img11.png'); 
     $('.img2').attr('src','img22.png'); 
     etc.etc. 
     isSwapped = true 
    } 
    else{ 
     $('.img1').attr('src','img1.png'); 
     $('.img2').attr('src','img2.png'); 
     etc.etc. 
     isSwapped = false 
    } 
}); 

나는 많은 이미지가있을 때 사용하는 청소기/깔끔한 코드가 있나요?

+0

이 질문은이 약 때문에 오프 주제로 표시 [코드 검토] (http://codereview.stackexchange.com/) – Andy

+2

ID에 하나, 첫 번째 PNG 파일 이름 세트에 다른 하나, 다른 PNG 세트에 세 번째 배열을 사용하십시오. 그런 다음 루프를 사용하여 src 속성을 변경하십시오. – kol

+0

@kol : 정확히 하나의 루프 :-) – Bergi

답변

1

가정하면 이미지의 형태 : html <img src="img1.png" data-alternate-src="img2.png" /> 당신은 사용할 수 있습니다

$('.swapButton').click(function swap(){ 
     $('img').each(function() { 
      var $this = $(this), 
        newSrc = $this.attr('data-alternate-src'); 

      $this.attr('data-alternate-src', $this.attr('src')); 
      $this.attr('src', newSrc); 
    }); 
}); 
+0

감사합니다. 나는 그의 의견에서 제안한 제안에 근거한 배열로 처리해 봤습니다. 원본 파일 이름을 유지하고 싶었습니다. – galingong

+0

두 번째로 읽은 후 더 우아한 접근 방식입니다. 다른 제안은 의견의 형태이므로, 나는 귀하의 답변을 수락 할 것입니다. – galingong

0

당신은 다음과 같이 사용할 수 있습니다

$('img').each(function(i,v){ 
    $(this).attr('src','img'+i+i);//for second case just use 'img'+i; 
});