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.对象:对象 ...
随机推荐
- mybatis 一对多关系
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...
- ThinkPHP3.2 分组分模块
ThinkPHP/Conf/convention.php 'CONTROLLER_LEVEL' => 1, 修改成 'CONTROLLER_LEVEL' => 2,
- Linux之zip压缩
1.压缩 对于test目录,使用 zip -rq test.zip test r表示递归压缩,q表示不显示过程 2.解压缩 unzip -q test.zip
- 【转】WCF入门教程一[什么是WCF]
一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...
- Web 服务器配置
Web 服务器配置在您进行 CGI 编程之前,请确保您的 Web 服务器支持 CGI,并已配置成可以处理 CGI 程序.所有由 HTTP 服务器执行的 CGI 程序,都必须在预配置的目录中.该目录称为 ...
- (转)platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备
platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备 2011-10-24 19:47:07 分类: LINUX kernel_init中d ...
- Ubuntu server版上使用命令行操作VPNclient
Ubuntu server版上使用命令行操作VPNclient VPN,虚拟专用网络,这个技术还是非常有用的.近期笔者參与的项目中就使用上了VPN,大概情况是这种.有两个开发团队,在异地,代码服务器在 ...
- erlang-百度云推送Android服务端功能实现-erlang
百度云推送官方地址http://developer.baidu.com/wiki/index.php?title=docs/cplat/push 简单的介绍下原理: 百度云推送支持IOS和Androi ...
- Labview按钮的机械动作
LabVIEW 对于按钮控件的机械动作提供了六个不同的选择,它们可以通过右键按钮并选择机械动作来找到.这些不同的选项导致按钮输出的值的行为不同.下里将这六个选项做一个简短的总结: 单击时转换当用鼠标将 ...
- 基础控制器MVC ,全局判断
public class BaseController : Controller { // // GET: /Base/ protected override voi ...