cloneNode小结
js原生API中有个cloneNode,还有一个可选的参数,
true代表复制子节点,包括任何包裹在标签之间的东西,当然包括文本节点,也就是标签之间有什么,它就会不假思索的全部都克隆一份。
false代表只复制节点本身,节点之间的任何东西都不用复制。
有时候,这个参数对于某些情况true false是相等的,比如没有任何子节点的复制,eg<div></div>
这不是本文所阐述的,本文阐述的是cloneNode在各种使用情况下对于是否复制事件表现的差异性:
例子页面:
<!doctype html>
<html>
<body>
<div id="myDiv" >
this is my div
</div>
</body>
添加事件
eg1.
<div id="myDiv" onclick="sayHello();">
this is my div
</div>
<script>
var elem = document.getElementById("myDiv");
//1.倘若放在dom节点属性onclick方法上,复制节点会复制出事件,新生成的dom也会附带上click事件
function sayHello(){
alert("say hello");
}
document.body.appendChild(elem.cloneNode(true));
</script>
eg2.
<div id="myDiv" >
this is my div
</div>
<script>
var elem = document.getElementById("myDiv");
//2.直接注册节点的click事件,cloneNode不会复制出事件
function sayHello(){
alert("say hello");
}
elem.onclick = sayHello();
document.body.appendChild(elem.cloneNode(true));
</script>
eg3.
<div id="myDiv" >
this is my div
</div>
<script>
function addEvent(elem, type, fn){
//cloneNode的时候,由此方法添加事件,新生产的节点会复制出事件
if(elem.attachEvent){
elem.attachEvent("on" + type, fn);
//cloneNode的时候,由此此方法添加事件,新生产的节点不会复制出事件
}else if(elem.addEventListener){
elem.addEventListener(type, fn, false);
}
}
var elem = document.getElementById("myDiv");
function sayHello(){
alert("say hello");
}
addEvent(elem, "click", sayHello);
document.body.appendChild(elem.cloneNode(true));
</script>
cloneNode小结的更多相关文章
- Javascript基础篇小结
转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用程序都要占用物理内存 浏览器 ...
- 3月web前端面试小结
说一下box-sizing的应用场景 box-sizing的属性值分为两个,border-box和content-box,其中, border-box:width=content+padding+bo ...
- 从零开始编写自己的C#框架(26)——小结
一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...
- Python自然语言处理工具小结
Python自然语言处理工具小结 作者:白宁超 2016年11月21日21:45:26 目录 [Python NLP]干货!详述Python NLTK下如何使用stanford NLP工具包(1) [ ...
- java单向加密算法小结(2)--MD5哈希算法
上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符 ...
- iOS--->微信支付小结
iOS--->微信支付小结 说起支付,除了支付宝支付之外,微信支付也是我们三方支付中最重要的方式之一,承接上面总结的支付宝,接下来把微信支付也总结了一下 ***那么首先还是由公司去创建并申请使用 ...
- iOS 之UITextFiled/UITextView小结
一:编辑被键盘遮挡的问题 参考自:http://blog.csdn.net/windkisshao/article/details/21398521 1.自定方法 ,用于移动视图 -(void)mov ...
- K近邻法(KNN)原理小结
K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用.比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出 ...
- scikit-learn随机森林调参小结
在Bagging与随机森林算法原理小结中,我们对随机森林(Random Forest, 以下简称RF)的原理做了总结.本文就从实践的角度对RF做一个总结.重点讲述scikit-learn中RF的调参注 ...
随机推荐
- 关于AJAX+HTML5+ASHX进行全静态页面的数据交互
及时总结项目中使用到的知识,知识在于积累. 1.HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...
- 我用的php开发环境是appserv一键安装,通过http://localhost测试成功,但是我有点不清楚的就是为什么访问.php文件要在地址栏上加上localhost(即http://localhost/text.php)才能成功访问?
这类似于一个域名地址. 因为默认localhost 就是指向本机.所以就用这个来访问自己本地的网页.比如你也可以输入 http://127.0.0.1/text.php http://192.168. ...
- python 内置错误类型 Built-in Exceptions
BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exception +-- StopIteration ...
- Latex命令笔记
1.\documentclass[hyperref, UTF8]{ctexart} 2.\numberwithin{equation}{section} %article中让公式按章节名编号 3.\p ...
- 【Chromium中文文档】Web安全研究
转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture/Extension_Sec ...
- “Options模式”下的配置是如何绑定为Options对象
“Options模式”下的配置是如何绑定为Options对象 配置的原子结构就是单纯的键值对,并且键和值都是字符串,但是在真正的项目开发中我们一般不会单纯地以键值对的形式来使用配置.值得推荐的做法就是 ...
- CentOS rc.local 不执行的问题
centos7 开机/etc/rc.local 不执行的问题 时间:2015-02-09 00:54来源:blog.51cto.com 作者:“闲潭小筑” 博客, 举报 点击:次 最近发现centos ...
- JSP中的Attribute和InitParameter
属性:Attribute类型:应用/上下文,请求,会话(ServletContext,HttpServletRequest/ServletRequest,HttpSession)设置方法:setAtt ...
- poj2405---体积几何
#include <stdio.h> #include <stdlib.h> #include<math.h> #define pi acos(-1) int ma ...
- 关于jquery的each的操作;
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...