clone( [withDataAndEvents] [, deepWithDataAndEvents] )

jQuery API の clone( [withDataAndEvents] [, deepWithDataAndEvents] ) は、マッチした要素をコピーするメソッド。withDataAndEventsに、trueを設定すると、イベントハンドラや要素データも、要素と一緒にコピーする。deepWithDataAndEventsに、trueを設定すると、子孫要素のイベントハンドラや要素データも、要素と一緒にコピーする。

引数

withDataAndEvents

booleanType(論理型)。

trueであれば、イベントハンドラや要素データも、要素と一緒にコピーする。

falseであれば、イベントハンドラや要素データは、コピーしない。

deepWithDataAndEvents

booleanType(論理型)。

trueであれば、子孫要素のイベントハンドラや要素データも、要素と一緒にコピーする。

falseであれば、子孫要素のイベントハンドラや要素データは、コピーしない。

記述方法

jQuery( セレクター ) . clone( true, false );

「セレクター」にマッチした要素をコピーする。イベントハンドラや要素データも、要素と一緒にコピーする。子孫要素のイベントハンドラや要素データは、コピーしない。

記述例

jQuery( '#jquery-sample li' ) . clone( true, false ) . appendTo( '#jquery-sample' );

idがjquery-sampleである要素内のli要素を、コピーし、idがjquery-sampleである要素の最後に追加する。イベントハンドラや要素データも、li要素と一緒にコピーする。子孫要素のイベントハンドラや要素データは、コピーしない。

実装例(サンプル)

  • 項目1
    • 項目1-1
    • 項目1-2
  • 項目2
    • 項目2-1
    • 項目2-2
  • 項目3
    • 項目3-1
    • 項目3-2

実装例(サンプル)の動作について

「項目1-1」をクリックすると、項目1-1をコピーし、リストの最後に追加する。

「項目1」をダブルクリックすると、項目1をコピーし、リストの最後に追加する。

コピーした「項目1」の入れ子の「項目1-1」をクリックしても、コピーしない。

コピーした「項目1」をダブルクリックすると、項目1をコピーし、リストの最後に追加する。

項目2、項目3も同様。

実装例(サンプル)のソースコード

JavaScript

<script>
<!--
jQuery( function() {
    jQuery( '#jquery-sample-ul > li' ) . dblclick( function () {
        jQuery( this ) . clone( true, false ) . appendTo( '#jquery-sample-ul' );
    } );
    jQuery( '.jquery-sample-ul-ul > li' ) . click( function () {
        jQuery( this ) . clone( true, false ) . appendTo( jQuery( this ) . parent() );
    } );
} );
// -->
</script>

CSS

<style type="text/css">
<!--
#jquery-sample-ul li{
    cursor: pointer;
}
-->
</style>

HTML

<ul id="jquery-sample-ul">
    <li>項目1
        <ul class="jquery-sample-ul-ul">
            <li>項目1-1</li>
            <li>項目1-2</li>
        </ul>
    </li>
    <li>項目2
        <ul class="jquery-sample-ul-ul">
            <li>項目2-1</li>
            <li>項目2-2</li>
        </ul>
    </li>
    <li>項目3
        <ul class="jquery-sample-ul-ul">
            <li>項目3-1</li>
            <li>項目3-2</li>
        </ul>
    </li>
</ul>

スポンサード リンク

カテゴリー: API, DOM操作, JavaScript, jQuery, コピー タグ: パーマリンク