JS-点和中括号
今天上午做一个很low的小练习,代码写完了想要封装重复利用来着
可是憋屈啊,怎么都不对,在document.style.width这里,想把width变成参数可是用点的话,会报错说找不到点后边这个属性
也是啊,点就是“的”的意思,点后边放一个abc代替,他当然会认为你要找style里边的abc属性啊。不妥,固不可、
听视频听到方括号这里,廓然打通了我的任督二脉,恍然大悟
可以用方括号代替啊!
其实这个用法还是很常见的,像dom二级事件里就要用到。
估计以后用方括号代替点来解决bug的时候还是很多的,虽然以前学到过,今天用到了就忘得一干二净到处抓狂
得get下来,留白、占位。
“原”代码:
//change 封装到我实在无能为力的精简版
function widthFun(a,c){
a.onclick = function(){
beSet.style.width = c+"px";
this.className = "mwjs-1-seting-cur";
}
}
widthFun(w200,200);
widthFun(w300,300);
widthFun(w500,500);
function heightFun(a,c){
a.onclick = function(){
beSet.style.height = c+"px";
this.className = "mwjs-1-seting-cur";
}
}
heightFun(h200,200);
heightFun(h300,300);
heightFun(h500,500);
function borFun(a,c){
a.onclick = function(){
beSet.style.borderWidth = c+"px";
this.className = "mwjs-1-seting-cur";
}
}
borFun(bor4,2);
borFun(bor6,6);
borFun(bor8,8);
function bgFun(a,c){
a.onclick = function(){
beSet.style.backgroundColor = c;
this.className = "mwjs-1-seting-cur";
}
}
bgFun(bgRed,"red");
bgFun(bgYellow,"yellow");
bgFun(bgBlue,"blue");
原js代码
任督二脉打通后的代码:
function clickFun(a,b,c,d){
a.onclick = function(){
beSet.style[b] = d;
beSet.style[b] = c+"px";
this.className = "mwjs-1-seting-cur";
}
} clickFun(w200,"width","200");
clickFun(w300,"width","300");
clickFun(w500,"width","500");
clickFun(h200,"height","200");
clickFun(h300,"height","300");
clickFun(h500,"height","500");
clickFun(bor4,"borderWidth","4");
clickFun(bor6,"borderWidth","6");
clickFun(bor8,"borderWidth","8");
clickFun(bgRed,"backgroundColor","","red");
clickFun(bgYellow,"backgroundColor","","yellow");
clickFun(bgBlue,"backgroundColor","","blue");
整整少了尼玛17行啊啊啊。
关键注意第三行,style后边不再是点引用一个属性了,而是用了[]:style["width"] === style.width
html(pug)
body
div#mask.mask
h3.mwjs-1-title 点击更改div的样式
input#mwjs1BtnSet(type="button",value="点我设置吧!")
div#mwjs1bySeted.mwjs-1-by-seted
div#mwjsPopWrap
h4 点击按钮尽情的设置样式吧!
span#mwjsPopClose X
.mwjs-p-wrap
p
input.mwjs-1-btn-text(type="button",value="设置宽度:")
input#mwjsWidth200.mwjs-1-seting-cur(type="button",value="200")
input#mwjsWidth300(type="button",value="300")
input#mwjsWidth500(type="button",value="500")
p
input.mwjs-1-btn-text(type="button",value="设置高度:")
input#mwjsHeight200(type="button",value="200")
input#mwjsHeight300(type="button",value="300")
input#mwjsHeight500(type="button",value="500")
p
input.mwjs-1-btn-text(type="button",value="边框粗细:")
input#mwjsBorder4(type="button",value="4")
input#mwjsBorder6(type="button",value="6")
input#mwjsBorder8(type="button",value="8")
p
input.mwjs-1-btn-text(type="button",value="背景颜色:")
input#mwjsBorderRed(type="button",value="红")
input#mwjsBorderYellow(type="button",value="黄")
input#mwjsBorderBlue(type="button",value="蓝")
p.mwjs1-submit-wrap
input#mwjs1Reset(type="button",value="重来")
input#mwjs1Submit(type="button",value="确认")
html
css(scss)
body input[type="button"]{
margin-left: 10px;
background: #3b8cff;
color: #fff;
font-size: 14px;
padding: 10px;
border: none;
outline: none;
&:hover{
background: #2c6fce;
}
}
.mwjs-1-by-seted{
width: 100px;
height: 100px;
border: 1px solid #000;
margin: 10px 20px;
}
.mask{
display: none;
position: absolute;
top:;
left:;
background: url("../images/mask.png") repeat;
width: 100%;
height: 100%;
}
#mwjsPopWrap{
display: none;
position: absolute;
top:;
left:;
right:;
bottom:;
z-index:;
width: 300px;
margin: auto;
text-align: left;
height: 300px;
background: #fff;
padding: 40px;
.mwjs-p-wrap{
margin-top: 40px;
}
p{
margin: 0 0 15px 0;
}
h4,.mwjs1-submit-wrap{
position: relative;
text-align: center;
margin: 0 0 15px 0;
}
h4{
span{
position: absolute;
top: -30px;
right: -30px;
width: 30px;
height: 30px;
border-radius: 50%;
color: #999;
line-height: 30px;
&:hover{
background: #e8e8e8;
color: #333;
cursor: pointer;
}
}
}
input{
width: 50px;
border: 1px solid #999;
border-radius: 5px;
background: #fff;
color: #333;
padding: 5px 10px;
&:hover,&.mwjs-1-seting-cur{
background: #e8e8e8;
}
}
.mwjs-1-btn-text{
width: 80px;
margin:;
background: #fff;
color: #333;
border: none;
&:hover{
cursor: text;
background: #fff;
color: #333;
}
}
.mwjs1-submit-wrap{
margin-top: 40px;
input{
background: #3b8cff;
color: #fff;
font-size: 14px;
width: auto;
padding: 10px 30px;
border: 1px solid #2c6fce;
outline: none;
border-radius:;
margin: 10px 15px;
&#mwjs1Reset{
background: #c8c8c8;
border: 1px solid #b2b2b2;
&:hover{
background: #b2b2b2;
}
}
&:hover{
background: #2c6fce;
}
}
}
}
css
JS-点和中括号的更多相关文章
- 前端知识点-JS相关知识点
1.谈谈你对Ajax的理解?(概念.特点.作用) AJAX全称为"Asynchronous JavaScript And XML"(异步JavaScript和XML) 是指一种创建 ...
- JS 前端构建工具gulpjs的使用介绍及技巧
gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速 ...
- 前端自动化之路之gulp,node.js
随着现在前端技术的不断发展,和各个公司对前端项目开发更新速度的要求,前端自动化越来越受到大家的重视,之前传统的前端开发方式已经越来越不能满足开发的需求了,于是各种自动化工具随之产生了.而gulp就是其 ...
- 【干货分享】前端面试知识点锦集03(JavaScript篇)——附答案
三.JavaScript部分 1.谈谈你对Ajax的理解?(概念.特点.作用) AJAX全称为“Asynchronous JavaScript And XML”(异步JavaScript和XML) 是 ...
- (转)gulp使用
前端构建工具gulpjs的使用介绍及技巧 gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nod ...
- 前端构建工具gulpjs的使用介绍及技巧
gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速 ...
- [Network] HTML、XML和JSON学习汇总
写在前面:楼主也是刚刚接触这方面的知识,之前完全是零基础,后来经朋友推荐了几个不错的博文,看完以后豁然开朗.但是此博文更加偏重于基础知识介绍(其实更深的楼主也还不了解,这方面的大神请绕道),只是分享个 ...
- java中Array/List/Map/Object与Json互相转换详解
http://blog.csdn.net/xiaomu709421487/article/details/51456705 JSON(JavaScript Object Notation): 是一种轻 ...
- Jsonp理论实例代码详解
什么是Json?JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - ...
- Json格式转换
验证Json格式可以进入 http://json.cn/ json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构1.对象:对象 ...
随机推荐
- am335x USB 驱动框架记录
参考: http://processors.wiki.ti.com/index.php/AM335x_USB_Driver%27s_Guide http://processors.wiki.ti.co ...
- VMware网络连接失败
假如你碰到了VMware 网络被断开, 明明已经分配了适配器, 客户端却显示网络断开没有连接. 可用恢复默认的方法重置所有网卡及服务. 进主工具首页.点击: 虚拟网络编辑器,然后点击下面的恢复默认. ...
- [转]Handler学习笔记(二)
一.一个问题 有这样一个问题值得我们思考,若把一些类似于下载的功能(既耗时且不一定有结果)写在Activity(主线程)里,会导致Activity阻塞,长时间无响应,直至页面假死(如果5秒钟还没有完成 ...
- CentOS-6.4-minimal版中安装MongoDB-x86_64-3.0.2
完整版见https://jadyer.github.io/2015/06/03/centos-install-mongodb/ /** * CentOS-6.4-minimal版中安装MongoDB- ...
- Hibernate- QBC-基本查询
01.环境搭建 02.基本查询 1.方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt &g ...
- 多个git账号之间的切换
在这篇文章中: 介绍 处理 一些题外话 我有一个repo,想要同时push到不同的仓库该如何设置? 我有一个github的repo,clone没有问题,push的时候总是报错:error: The r ...
- HTTP API 设计指南(响应部分)
前言 这篇指南介绍描述了 HTTP+JSON API 的一种设计模式,最初摘录整理自 Heroku 平台的 API 设计指引 Heroku 平台 API 指引. 这篇指南除了详细介绍现有的 API 外 ...
- Java 获取webapp,Root,classpath,项目等路径工具类
public class UtilPath { public static void main(String[] args) { String systemName = System.getPrope ...
- Qt 反射
简介 本文主要讲解Qt是如何实现反射,以及一点点反射使用的小心得. 文章概览 Qt反射内幕小窥 详细内容 反射前期准备 得到注册的类成员变量 得到注册的类成员函数 访问类成员属性(get,set) 调 ...
- 关于在Android或Java中精度缺失的解决方法
left,right是两个String类型的字符串,myres是一个double类型的变量. 如果我们用下面的语句把left,right先转换为double后直接加法的话,如果作3.3乘3之类的运算( ...