自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊一聊JQuery-深/淺克隆方法Clone()

開發(fā) 前端
克隆也可以理解為復(fù)制、拷貝和翻倍,就是從原型中產(chǎn)生出同樣的復(fù)制品,它的外表及遺傳基因與原型完全相同,但大多行為 思想不同。

克隆

克隆:是英文"clone"或"cloning"的音譯;克隆是指生物體通過體細胞進行的無性繁殖,以及由無性繁殖形成的基因型完全相同的后代個體。

克隆也可以理解為復(fù)制、拷貝和翻倍,就是從原型中產(chǎn)生出同樣的復(fù)制品,它的外表及遺傳基因與原型完全相同,但大多行為 思想不同。

JQ的clone()方法名稱個人感覺就是蹭熱點名詞;其作用就是復(fù)制。

clone()

?克隆節(jié)點是Dom的常見操作,JQ提供一個clone方法,專門用于處理dom的克隆。

clone()方法是克隆匹配的Dom元素;可以生成被選元素的副本,包含子節(jié)點,文本與屬性。

clone()方法使用格式:$(selector).clone(true|false)?。

深/淺克隆的區(qū)別在于方法的參數(shù)是true(深克隆)或false(或者沒有)是淺克隆。

  1. 淺克隆:只復(fù)制副本,不會克隆節(jié)點的事件。
  2. 深克隆:不止復(fù)制副本,還會復(fù)制節(jié)點的JQ事件。

頁面示例代碼:

<style type="text/css">
div {
border: 1px solid #000;
margin: 10px 10px;
background-color: #0095ff;
width: 200px;
height: 100px;
}
</style>
<input type="button" value="JQ淺克隆" id="c1" />
<input type="button" value="JQ深克隆" id="c2" />
<div id="dv1">
<span>用戶名:</span><input type="text" />
</div>

為dv1分別注冊Dom的0級/2級事件/JQ事件的單擊事件;使用colone()方法克隆出新的div,在克隆的div中追加一個p元素其文本用于標示深/淺克隆的div。

深/淺克隆事件

$(function () {
//注冊dom的0級單擊事件
var dv1 = document.getElementById("dv1");
dv1.onclick = function () {
console.log("dom 0級事件");
};
//注冊dom的2級單擊事件
dv1.addEventListener("click", function () {
console.log("dom 2級事件");
});
//注冊JQ的單擊事件
//$("#dv1").click(function () { console.log("我是dv1"); });
$(dv1).click(function () { console.log("我是dv1"); });
//01.淺克隆 不會復(fù)制事件
//包括 0級/2級dom事件與JQ的事件 都不會被復(fù)制
$("#c1").click(function () {
//$newDiv克隆出來的新div
var $newDiv = $("#dv1").clone();
//在克隆的div追加一個p元素
//用于標示新div是淺克隆出來的
$newDiv.append('<p>淺克隆</p>');
//將克隆的div插入到$("#dv1")的后面
$newDiv.insertAfter($("#dv1"));
});

//02.深克隆 會復(fù)制事件
//注意:jq事件 會復(fù)制,
//0級/2級dom事件 不會被復(fù)制
$("#c2").click(function () {
var $newDiv = $("#dv1").clone(true);
//用于標示新div是深克隆出來的
$newDiv.append('<p>深克隆</p>');
$newDiv.insertAfter($("#dv1"));
});
});

小結(jié)

深/淺克隆的區(qū)別:

1、方法參數(shù)

  • 深克隆參數(shù)為true 淺克隆參數(shù)為false。

2、針對事件

  • 淺克隆 0級/2級/JQ事件都不會被克隆。
  • 深克隆只會克隆JQ事件,0級/2級事件也不會被克隆。
責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2023-05-15 08:38:58

模板方法模式

2022-06-01 09:51:51

Golang方法接收者

2023-07-25 15:06:39

2023-09-22 17:36:37

2021-01-28 22:31:33

分組密碼算法

2020-05-22 08:16:07

PONGPONXG-PON

2018-06-07 13:17:12

契約測試單元測試API測試

2021-05-12 18:02:23

方法創(chuàng)建線程

2022-08-08 08:25:21

Javajar 文件

2021-08-04 09:32:05

Typescript 技巧Partial

2018-11-29 09:13:47

CPU中斷控制器

2019-02-13 14:15:59

Linux版本Fedora

2021-01-29 08:32:21

數(shù)據(jù)結(jié)構(gòu)數(shù)組

2021-02-06 08:34:49

函數(shù)memoize文檔

2022-11-01 08:46:20

責(zé)任鏈模式對象

2023-07-06 13:56:14

微軟Skype

2020-10-15 06:56:51

MySQL排序

2020-09-08 06:54:29

Java Gradle語言

2022-03-08 16:10:38

Redis事務(wù)機制

2022-03-29 09:56:21

游戲版本運營
點贊
收藏

51CTO技術(shù)棧公眾號