為什么把this改成".aaron2"之后是以倍數增加div的
<!DOCTYPE html>
<html>
<head>
? ? <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
? ? <title></title>
? ? <script src="http://www.xianlaiwan.cn/static/lib/jquery/1.9.1/jquery.js"></script>
? ? <style>
? ? .left,
? ? .right {
? ? ? ? width: 300px;
? ? ? ? height: 120px;
? ? }
? ??
? ? .left div,
? ? .right div {
? ? ? ? width: 100px;
? ? ? ? height: 90px;
? ? ? ? padding: 5px;
? ? ? ? margin: 5px;
? ? ? ? float: left;
? ? ? ? border: 1px solid #ccc;
? ? ? ? background: #bbffaa;
? ? }
? ? </style>
</head>
<body>
? ? <h2>通過clone克隆元素</h2>
? ? <div class="left">
? ? ? ? <div class="aaron1">點擊,clone淺拷貝</div>
? ? ? ? <div class="aaron2">點擊,clone深拷貝,可以繼續觸發創建</div>
? ? </div>
? ? <script type="text/javascript">
? ? ? ? //只克隆節點
? ? //不克隆事件
? ? $(".aaron1").on('click', function() {
? ? ? ?// $(".left").append( $(this).clone().css('color','red') )
? ? ? ?$(".arron1").clone()
? ? })
? ? </script>
? ? <script type="text/javascript">
? ? //克隆節點
? ? //克隆事件
? ? $(".aaron2").on('click', function() {
? ? ? ? ? ? console.log(1)
? ? ? ? $(".left").append( $(this).clone(true).css('color','blue') )
? ? })
? ? </script>
</body>
</html>
2019-12-16
我的理解(以克隆"aaron1"為例):若將"this"改為"aaron1",$(".arron1").clone()表示克隆所有類名為"aaron1"的元素,第一次點擊"aaron1"時克隆出一個,此時共有2個"aaron1"的元素,再次克隆則會對這兩個"aaron1"都克隆一次,所以當你第二點擊克隆時就是克隆出2個"aaron1",以此類推。而"this"指代當前對象,即只克隆當前這一個擁有克隆點擊事件的對象。
2020-03-30
因為在jquery中,對象是一個元素集合?。荒愕谝淮吸c擊前,arron2集合中只有一個元素;第二次點擊前,aaron2中有2個元素;第三次,有4個元素;依次類推。