2012-09-19 2 views
0

양식을 변경하는 toggle() 스크립트가 있습니다. 사용자가하는 일은 id가 "comp"인 이미지를 클릭하는 것입니다. 그런 다음 레이블을 New Company로 변경하고 선택 드롭 다운을 텍스트 입력으로 변경합니다. 그런데 원래 상태로 되돌아 가도록 만드는 방법은 무엇입니까?toggle() 기능을 올바르게 사용하는 방법

<script> 
$(document).ready(function() { 
    $('#newcomp').click(function() { 
     $('select#company').toggle(); 
     $('select#company').replaceWith("<input type='text' id='company' name='company' >"); 
     $('#comp label').replaceWith('<label for="company">New Company</label>') 
    }); 
}); 
</script> 

감사 책략

+1

당신/당신의 마크 업을 게시 만들 수 있습니다 추측 [jsfiddle] (http://jsfiddle.net/) ? – undefined

+0

'# newcomp'와'# comp'에 약간의 혼란이 있습니다. 당신은''id "comp"'이미지를 클릭하고,'# newcomp'는 당신의 예제에서'# comp'가 아닌 것으로 말합니까? 또한 레이블과 드롭 다운을 대체하는 데 사용하는 새 값만 표시되므로 HTML을 게시해야합니다. 원래 값을 다시 전환하고 싶은지 전혀 알 수 없습니다. 그것들을 아는 것은 해결책과 관련이 있습니다. – Nope

답변

0

내가 싶은 것은 fadeOut->replace->fadeIn.

$(document).ready(function() { 
    $('#newcomp').click(function() { 
     $('select#company').fadeOut('slow', function() { 
      $('#comp label').replaceWith('<label for="company">New Company</label>'); 
      $(this).replaceWith("<input type='text' id='company' name='company' >").fadeIn('slow'); 
     }); 
    }); 
}); 
+0

OP는 원본 요소를 대체하는 코드 만 보여주고 있다고 생각합니다. 1 변경시 두 줄의 코드가 모두 필요합니다. OP는 'replaceWidth' 두 호출을 모두 취소 할 트리거를 찾고있는 것 같지만 교체 된 원본 HTML이 필요합니다. 페이드는 그것을 고쳐주지 않을 것입니다. – Nope

관련 문제