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.对象:对象 ...
随机推荐
- SQL2005 全文检索超时的解决方案
如果没有 Internet 连接的服务器上运行的 SQL Server 2005 实例中运行全文查询时,您可能会遇到 45 秒钟的延迟 详细的解释请查看http://support.microsoft ...
- linux 中的进程wait()和waitpid函数,僵尸进程详解,以及利用这两个函数解决进程同步问题
转载自:http://blog.sina.com.cn/s/blog_7776b9d3010144f9.html 在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / wait ...
- java list分组 list里面分装的都是对象 按照对象的属性来分组
http://www.iteye.com/problems/86110 —————————————————————————————————————————————————————————— List& ...
- Framework 7 之 Smart select 选择后自动隐藏
Framework 7官网地址:Framework 7(英文版) Framework 7(中文版) 给“smart-select”添加属性 data-back-on-select="tru ...
- jQuery 工具大搜集
jQuery 是一个非常棒的类库,但是为了保证代码的干净以及代码的精简,它只提供最核心的功能.所以就有了很多其他的工具来丰富jQuery的功能.我在使用这些工具的时候发现我常常重复的编写一些代码,所以 ...
- relation 关联模型
关联关系必然有一个参照表,例如:有一个员工档案管理系统项目,这个项目要包括下面的一些数据表:基本信息表.员工档案表.部门表.项目组表.银行卡表(用来记录员工的银行卡资料).这些数据表之间存在一定的关联 ...
- 关于jsp,javascript,php等语言
技术一 jsp: java植入html 技术二 javascript(js)植入html 技术三早期php植入html 弱类型语言和强类型语言 弱类型语言无法实现函数重载,没办法
- 【转】C# 调用WebService的方法
很少用C#动态的去调用Web Service,一般都是通过添加引用的方式,这样的话是自动成了代理,那么动态代理调用就是我们通过代码去调用这个WSDL,然后自己去生成客户端代理.更多的内容可以看下面的两 ...
- 【AngularJS】AngularJS整合Springmvc、Mybatis环境搭建
近期想学习AngularJS的使用,网上搜了一圈后,折腾了半天解决bug后,成功使用AngularJS整合Springmvc.Spring.Mybatis搭建了一个开发环境.(这里Spring使用的版 ...
- VCL 中的 Windows API 函数(6): BeginDeferWindowPos
BeginDeferWindowPos 和 DeferWindowPos.EndDeferWindowPos 是一组一起使用的函数, 可对一组窗口的位置.大小.Z 序等进行调整, 在 ExtCtrls ...