2011-08-03 3 views
0

페이지의 첫 번째 선택을 가져 와서 나중에 필요할 때 다시 설정할 수 있도록 복제하는 코드가 있습니다. Replacewith 후에 jQuery onChange를 유지하십시오.

mySelect = jQuery('select').get(0); 
origSelect = jQuery(mySelect).clone(); 

jQuery(mySelect).change(function(){ 
    //some code 
} 

내가 코드를 발사

함께 선택을 재설정 :

jQuery(mySelect).replaceWith(origSelect); 

onchange를 기능이 작동을 멈 춥니 다. 나는 그것이 이제 origSelect라고 불리고 그 이름에 대한 onChanges에 응답하기 때문에 그것이라고 판단했습니다. 참조하는 이름을 변경하지 않고 mySelect의 내용을 origSelect의 내용으로 바꾸는 옵션이 있습니까?

답변

2

clone 메서드에 매개 변수 true를 전달합니다.

origSelect = jQuery(mySelect).clone(true); //This will clone the select with data and events 

또는 origSelect의 innerHTMl을 mySelect로 바꿉니다.

jQuery(origSelect).html(jQuery(mySelect).html()); 
+0

깔끔하게, 나는 단지 .clone (true)로 이것을 할 수 있다는 것을 몰랐다. +1 –

+0

도움을 주셔서 감사합니다. – matt

0

$(mySelect).change(...) 대신 $(mySelect).live('change', ...)을 사용하십시오.

+0

고마워요! – matt

관련 문제