【总结】实现点击累加效果的几种方式对比
//实现点击累加效果的几种方式对比Author:李金涛;Time:2018-1-1(新年新气象,更上一层楼。持续写博客。不断总结优化,博观约取,才能厚积薄发!)// 1,利用全局作用域不销毁的原理,把需要累加的变量定义为全局变量。//弊端:在项目中为了防止全局变量之间的冲突,我们一般是禁止或者减少使用全局变量。// 2,自己形成一个不销毁的私有作用域来保存我们需要累加的变量。// (1),用自执行函数包起来;// (2),把自执行函数的返回值函数赋值给变量。//弊端:有一个不销毁的私有作用域,所以占内存。// 3,利用innerHTML既能存取值,也能获取值的原理。每次点击时想到页面取最新的值,累加完后在放回去。//弊端:每一次都需要把页面中的内容先取出来,转换成数字然后累加,最后重新放回去。当重新放回去时,浏览器都需要重新渲染。// 4,自定义属性存储(推荐):这样就没有作用域那点弊端之说。
<div id="box"> <h3>问题:认为杨幂很漂亮的请狂点~~</h3> <div id="btn">我非常非常同意以上观点 <span id="spanNum">0</span></div></div>
<style> #box{ width: 300px; margin: 100px auto; } #btn{ background-color: #ccc; } #spanNum{ color: red; }</style> <script type="text/javascript"> var oBtn=document.getElementById("btn"); var spanNum=document.getElementById("spanNum");// 1,利用全局作用域不销毁的原理,把需要累加的变量定义为全局变量。// var count=0;// oBtn.οnclick=function () {// count++;// spanNum.innerHTML=count;// };// 弊端:在项目中为了防止全局变量之间的冲突,我们一般是禁止或者减少使用全局变量。 //2,自己形成一个不销毁的私有作用域来保存我们需要累加的变量。// (1),用自执行函数包起来;// +function () {// var count=0;// oBtn.οnclick=function () {// count++;// spanNum.innerHTML=count;// };// }();// (2),把自执行函数的返回值函数赋值给变量。// oBtn.οnclick=(function () {// var count=0;// return function () {// count++;// spanNum.innerHTML=count;// };// })();//此处易写错,请千万注意;// 弊端:有一个不销毁的私有作用域,所以占内存。 // 3,利用innerHTML既能存取值,也能获取值的原理。每次点击时想到页面取最新的值,累加完后在放回去。// oBtn.οnclick=function () {// spanNum.innerHTML++;//++除了加1,还默认转换成Number// spanNum.innerHTML-=(-1);// spanNum.innerHTML=spanNum.innerHTML-0+1;// spanNum.innerHTML=Number(spanNum.innerHTML)+1;// };// 弊端:每一次都需要把页面中的内容先取出来,转换成数字然后累加,最后重新放回去。当重新放回去时,浏览器都需要重新渲染。 // 4,自定义属性存储(推荐):这样就没有作用域那点弊端之说。// oBtn.count=0;//count属性初始值为0.// oBtn.οnclick=function () {//每点击一次在当前值上加1;// spanNum.innerHTML=++this.count;// }; </script>
转载于:https://www.cnblogs.com/ljt1412451704/p/8168437.html
【总结】实现点击累加效果的几种方式对比相关推荐
- 元素隐藏的三种方式对比(针对移动端项目中的按钮,先隐藏且不能被点击 visibility:hidden)
元素隐藏的三种方式对比 display:none opacity:0 visibility:hidden 项目需求 表面一个图片遮罩,鼠标hover遮罩消失,内部元素展现,其中有一个按钮在移动端是手指 ...
- Vue项目点击刷新页面的三种方式
Vue项目点击刷新页面的三种方式 一.原生js刷新方式: location.reload(); 二.Vue框架自带的路由跳转方式: this.$router.go(0); 三.在App.vue页面声明 ...
- android圆形点击效果,Android 三种方式实现自定义圆形页面加载中效果的进度条
[实例简介] Android 三种方式实现自定义圆形页面加载中效果的进度条 [实例截图] [核心代码] ad376a86-a9aa-49bc-8cea-321bcff2c0c3 └── AnimRou ...
- AngularJS中实现显示或隐藏动画效果的3种方式
本篇体验在AngularJS中实现在"显示/隐藏"这2种状态切换间添加动画效果. 通过CSS方式实现显示/隐藏动画效果 思路: →npm install angular-anima ...
- 前端实现动画效果的几种方式(有实例)
现在对于前端的要求变大了很多,随着时代进步,人们的审美越来越挑剔,对于用户交互的体验成为了公司竞争的一大助力.而动画效果,可以说是最有效的提高用户体验的方式了.但是对于前端来说,实现动画的方法也有很多 ...
- css 实现虚线效果的3种方式详解
一.效果 首先可以看一下下图显示的实现效果: 用三种方式实现了虚线效果: 点击查看demo代码 二.实现 1.border 属性 查看 mdn 的 border,我们知道 border 可以用于设置一 ...
- rp导入图片大小_Axure制作图像的放大与缩小效果的四种方式
1.新建Axure RP项目,取名"Axure制作图像的放大与缩小效果" 2.拖入动态面板控件,取名"放大缩小".设置大小为560*330px.坐标为x:300 ...
- 百度地图点击marker换图标的两种方式
首先在页面把要替换的图标引入 import newIcon from "../../../../static/image/startIcon.png" 第一种方式:使用百度地图ap ...
- 字体滚动实现效果的几种方式
一. 第一种方式 <ul:class="{ marquee_top: animate }"@mouseenter="Stop()"@mouseleave= ...
最新文章
- AI研发新药登上Nature子刊:46天合成潜在新药候选分子,比传统方法快15倍 | 开源...
- python在线读-Python测试之道
- ElasticSearch---------------------Elasticsearch Clients---------------------JAVA API
- 笔记-项目风险管理-复习要点
- 把数据导出Excel
- jsp 页面刷新_如何应用XML+XSLT+AJAX组合技术实现无刷新数据查询
- 010 、JVM实战总结: 动手实验:亲自感受一下线上系统部署时如何设置JVM内存大小
- 2019-04-17 PowerShell基本语法
- dvm与art的区别_Android运行时– DVM与ART,AOT与JIT
- DNN永日新闻模块(YongRi)免费1.00.09版本下载
- BT1120,模拟视频输入输出格式
- 进程调度算法Java
- 点云学习笔记1——激光雷达的原理
- linux 磁盘格式化xfs,大磁盘分区格式化XFS文件系统
- 根据pix飞控log文件和photo文件夹建立pos文件,提取pos数据小程序
- floyd-warshall算法浅理解
- 用python模拟一个文本浏览器来抓取网页
- vue使用地图api
- 坐南京13路公交车,体验《头文字D》感觉!
- 腾讯课堂 H5 直播间点赞动效实现