>  기사  >  웹 프론트엔드  >  jquery 함수 clone과 clone(true)의 사용법 차이에 대한 자세한 설명

jquery 함수 clone과 clone(true)의 사용법 차이에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-06-25 09:58:121226검색

<span style="font-size:18px;"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="jquery-1.4.3.js" type="text/javascript"></script>
  
<script>
$(document).ready(function(){
  
$("button").click(function(){
$(this).clone(true).insertAfter(this);
});
  
});
</script>
    
</head>
<body>
<button>Clone Me!</button>
</body>
</html></span>


(1) 이 예에서 clone과 clone(true)의 차이점은 컬렉션 복제 외에도 clone(ture)은 클릭 핸들도 복제한다는 것입니다.

(2) 현상은 다음과 같습니다: clone의 Clone Me ! 계속해서 클릭하여 복제할 수 없습니다. 하지만 Clone Me!는 복제 후(true) 계속 복제할 수 있으며 원래 버튼과 다르지 않습니다.

위 내용은 제가 ITeye에서 경험한 내용입니다. 오늘 정말 깊은 깨달음을 얻었습니다. 중복되는 코드를 거의 많이 썼어요. 과정은 다음과 같습니다.

<span style="font-size:18px;"><li class="more_box"></li>
<li class="tab_more">
     <p id="more_list">
          <a href="#"><b>绩效考核</b></a>
          <a href="#"><b>管理考核</b></a>
          <a href="#"><b>岗位分析</b></a>
          <a href="#"><b>系统维护</b></a>
          <a href="#"><b>个人设置</b></a>
    </p> 
</li></span>


달성해야 할 효과는 id="more_list"에서 a를 클릭한 후 a를 복제하여 24d7c8b521e21a29657db5debc8a5a8d.

<span style="font-size:18px;">$("#more_list>a").click(function(){
    $(".more_box").html($(this).clone(true)).show().click();
})</span>


결과는 실제로 복제가 이루어졌으나 li 요소 자체의 clickevent를 실행할 수 없다는 것입니다. (위 원리를 토대로 clone(true)하면 a의 클릭 이벤트도 복사되므로 li가 클릭하면 a의 클릭 이벤트가 발생하여 원본 이벤트를 덮어쓰게 된다.)
그래서 나는 오후 내내 이것저것 찾아보며 보냈다. 이유 드디어 찾았습니다.

clone(true)에서 true를 제거하세요(이벤트가 아닌 복제 요소만 해당).

<span style="font-size:18px;">$("#more_list>a").click(function(){
  $(".more_box").html($(this).clone()).show().click();
})</span>


위 내용은 jquery 함수 clone과 clone(true)의 사용법 차이에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.