mplungjan의 답변은 훌륭하지만 몇 가지 대안을 제안하겠습니다. 이미지 스왑은 sprite을 사용하는 것이 가장 좋으므로 이미지간에 전환이 지연되지 않습니다. 두 버전의 이미지를 하나의 파일에 나란히 놓습니다. 해당 이미지를 div의 배경으로 설정하고 배경 위치를 조정하여 하나 또는 다른 이미지를 표시하십시오.
"pic1_bw_color_sprite.png"이 75x75 컬러 이미지이고 그 아래에 75x75 이미지가 있고 최종 이미지가 75px 너비와 150px 높이라고 가정합니다. 이 같은 설정하여 CSS :
$("#pic1").click(function()
{
$(this).toggleClass("bw");
});
여기를보십시오 :
#pic1
{
background-image: url(pic1_bw_color_sprite.png);
height: 75px;
width: 75px;
}
#pic1.bw
{
background-position: 0px -75px;
}
그런 다음 몇 가지 간단한 jQuery를이 모든 작업을 할 http://jsfiddle.net/gilly3/B7esz/
을 지금까지의 코드를 복제 등을, 그 하나 jQuery가 피하는 것이 매우 좋다. 그냥 행동해야하는 모든 클래스가 포함 된 선택 사용 : 당신이 당신의 데이터베이스를 업데이트 할 수 있도록
$("#pic1,#pic2,#pic3,#pic4").click(...);
// or
$(".bwSwap").click(...);
당신이 당신의 폼 요소에 대한 참조를 얻을 필요가 양식의 현재 상태를 저장하기를, 다음 설정 value
속성 (또는 jQuery의 경우 .val()
).
$("#pic1").click(function()
{
$(this).toggleClass("bw");
$("#pic1isBW").val($(this).hasClass("bw"));
});
감사합니다 ... 나는 그 시도를 할 것입니다. 자, 거기에 양식을 통해 전달할 수 있도록 변수 또는 숨겨진 된 입력 된 새 파일 이름을 저장할 수있는 방법이있을 것입니다. 이미지는 양식 안에 있고 파일 이름은 PHP를 통해 데이터베이스에서 가져오고 양식을 제출할 때 파일 이름의 새로운 현재 상태를 데이터베이스에 저장할 수 있기를 원합니다. – RyanPitts
@ RyanPitts, 이봐, 당신은 프로 답게 생각한 적이 있니? – sln