首頁 > web前端 > js教程 > 主體

jquery函數clone與clone(true)的用法差異詳解

巴扎黑
發布: 2017-06-25 09:58:12
原創
1267 人瀏覽過

<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)除了複製集合,還會複製click句柄

(2)現象就是:clone的Clone Me! 無法繼續點選克隆。但是clone(true)出來的 Clone Me! 可以繼續克隆,和原本按鈕沒有差別。

如上是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複製並加入

  • 之中。

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


    結果確實實作了克隆,但li元素本身的click事件怎麼也運作不了了。 (以上述原理,當clone(true)時,將a的click事件也複製過去了,所以li單擊時觸發的是a的click的事件,原本的事件被覆蓋)
    於是乎找了一下午原因終於發現了。

    去掉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中文網其他相關文章!

    相關標籤:
    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!