2011-04-26 3 views
0

이 코드를 가지고 :clone()은 이벤트 핸들러에 대한 다른 참조를 생성합니까?

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.classSelect').change(function() { 
      // somethings 
     }); 
    }); 
</script> 

그리고 모든 .classSelect에 적용됩니다. 이 div 중 일부를 복제하고 페이지에 삽입하면이 핸들러가 이러한 복제 된 요소에 대해 자동으로 작동한다는 것을 알 수 있습니다.

그래서 요소를 복제 할 때마다 해당 요소에 대한 새로운 처리기 참조를 만듭니다. 아니면 내가 잘못한거야?

답변

4

.clone() 방법을 사용하면 (이벤트와 데이터를 복제해야하는지 여부)이 동작을 제어 할 수 있도록 추가 부울 매개 변수를 취합니다

withDataAndEvents : 부울 이벤트 핸들러가 을 함께 복사해야하는지 여부를 나타내는를 요소들. jQuery 1.4부터는 요소 데이터도 복사됩니다 ( ).

deepWithDataAndEvents : 부울 가 복제 된 요소의 모든 어린이를위한 이벤트 핸들러와 데이터를 복사해야하는지 여부를 나타내는

그리고 버전 1.5에서

는 두 번째 인수 deepWithDataAndEvents에게 있습니다. 기본적으로 의 값은 첫 번째 인수의 값 (기본값 : false)과 일치합니다.

그래서 요소 요소를 복제하면 소스 요소에 첨부 된 처리기도 복제 된 요소에 의해 실행됩니다.

+0

음! 그러나 요소를 복제 할 때 추가 매개 변수를 지정하지 않으면 작동합니다. O – markzzz

+0

@markzzz, jquery 버전을 사용하고 있습니까? –

+0

버전은 1.5 – markzzz

관련 문제