2012-12-20 2 views
1

좋아요, 그래서 두 이미지 사이를 토글 전환하려고합니다. 하나는 애니메이션 GIF이고 다른 하나는 jpg입니다. 기본적으로 클라이언트는 제품의 기능에 대한 애니메이션 GIF 톤을 원하지만 실제로 사용하기 때문에 스위치를 켜고 끌 수 있습니다. 그래서 모든 클래스의 이미지를 가지고 있는지 궁금 해서요, src의 나머지 부분이 모두 다르기 때문에 gif에서 jpg로 모든 이미지의 마지막 세 문자를 변경하는 토글을 설정할 수 있습니까?jquery src 속성 변경 끝

분명히 작동하지 않지만 논리를 따라갈 수 있기를 바랍니다.

$('img.img-toggle').click(function() { 
if() //If the image ends in .jpg 
{ 
    //Somehow strip the attribute of .jpg 
    //Somehow append the attribute to add .gif 
} else { 
    //Somehow stip the attribute of .gif 
    //Somehow append the attribute to add .jpg 
} 
});​ 

의견이 있으십니까? 내 논리가 어리석은 또 다른 옵션도 좋을 것이다. 나는 이것에 대해 새로운 점이있다. 나는 여러 가지 일을 시도했지만 알아낼 수 없었습니다. 사전에

감사합니다, 케빈

+1

[whathaveyoutried.com] (http://mattgemmell.com/2008/12/08/what-have-you-tried/)? [자바 스크립트가 문자열의 끝을 결정] (https://www.google.ie/webhp?hl=ko&tab=ww#hl=en&tbo=d&sclient=psy-ab&q=javascript+determine+end+of+string&oq=javascript+determine+ 끝 + 문자열 + gs_l = hp.3..33i29l2.320632.327824.5.328031.35.33.0.0.0.7.273.2943.27j5j1.33.0.les % 3B..0.0 ... 1c.1.9ivRY0tVWHI & pbx = 1 & bav = on.2 또는 질문에 연구 노력이 없다고 생각하기 때문에 .r_gc.r_pw.r_cp.r_qf. & bvm = bv.1355534169, d.Yms & fp = b4a5795965c8af13 & bpcl = 40096503 & biw = 1221 & bih = 669) – Nope

답변

1

을 당신이 여기에 모든 이미지에 대해이 작업을 실행하십시오.

$('img.img-toggle').click(function() { 
    (".imgClass").each(function() { 

     var src = $(this).prop("src"); 

     if(/\.jpg$/i.test(src)) { 
      $(this).prop("src", src.replace(/\.jpg$/, ".gif")); 
     } else { 
      $(this).prop("src", src.replace(/\.gif$/, ".jpg")); 
     } 
    }); 
}); 
+0

그래,이게 좀 나아 졌어. 나는 처음에는 마지막 이미지가 모든 이미지를 전환하지 않았다는 것을 처음에는 깨닫지 못했습니다. 나는 모든 것을 토글로 만들었지 만 모두 같은 소스로 돌아올 것입니다. – kevin11189

1

한 가지 방법 ... 이런 식으로 뭔가를 할 것

$('img.img-toggle').click(function() { 
    var src = $(this).attr("src"); 
    if (src.indexOf(".jpg") != -1) //If the image ends in .jpg 
    { 
     src = src.replace(".jpg", ".gif"); 
    } else { 
     src = src.replace(".gif", ".jpg"); 
    } 
    $(this).attr("src", src); 
}); 
+1

''및 ''에서 작동하지 않습니다. ' –

+0

그래, 대부분의 제안처럼 이 페이지에. 모든 사람들이 합리적인 이미지 이름을 사용합니다. – Archer

+0

이것은 완벽했습니다. 내가 변경 한 유일한 것은 $ ('img.img-toggle') 였으므로 페이지의 모든 이미지에 영향을주었습니다. 그것은 개인적인 취향 일의 더 많은 것이었다. 고맙습니다. – kevin11189

3

우리는 이미지에서 마지막 세 가지 또는 네 개의 문자를 잡을 수 SRC 문자열 및 그것을 비교하십시오.

$('img.img-toggle').click(function() { 
    var ending = this.src.slice(-3); 

    switch(ending) { 
     case 'jpg': 
      this.src = this.src.replace(/jpg$/, 'gif'); 
      break; 
     case 'gif': 
      this.src = this.src.replace(/gif$/, 'jpg'); 
      break; 
    } 
}); 

은 내가 switch/case이 단지의 경우 미래에 더 형식이있을 수 있습니다 사용.

또 다른 옵션은 자동으로 제공하는 데 필요한 두 가지 기능 사이를 전환합니다

$('img.img-toggle').toggle(function() { 
    this.src = this.src.replace(/jpg$/, 'gif'); 
}, function() { 
    this.src = this.src.replace(/gif$/, 'jpg'); 
}); 

.toggle() 같은 방법으로 jQuerys에게 .toggle() 방법을 사용하는 것입니다.

+1

대신에'/ jpe? g $ /'를 대신 검색 할 것입니다. – Blazemonger

1
$('img.img-toggle').click(function() { 
    var src = $(this).attr("src"); 
    if (src.indexOf(".jpg") != -1) { 
     $(this).attr("src", src.replace(".jpg", ".gif")); 
    } 
    else { 
     $(this).attr("src", src.replace(".gif", ".jpg")); 
    } 
});​ 
2

이 시도 :

$('img.img-toggle').click(function() { 
    var $img = $(this); 
    var src = $img.prop('src'); 
    if (src.match(/\.jpg$/)) { 
     $img.prop('src', src.replace(/\.jpg$/, '.gif')); 
    } else { 
     $img.prop('src', src.replace(/\.gif$/, '.jpg')); 
    } 
}); 

Example fiddle

+0

예, 다른 유령 downvote –

0
$('img.img-toggle').click(function() { 
    src = $(this).attr('src'); 
    if (src.substr(src.length - 4) == ".jpg") //If the image ends in .jpg 
    { 
     src = src.replace(".jpg", ".gif"); 
    } else { 
     src = src.replace(".gif", ".jpg"); 
    } 
});​