自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 鼠标多次任意点击元素,css的hover失效的解决办法

1.解决办法:改为js的mouseenter和mouseleave事件;2.原因:经定位,是鼠标多次任意点击元素时,进入到了mouseleave事件中(鼠标点击时是在元素上的,不应该进入mouseleave中),所以才导致了hover失效。3.代码:<!DOCTYPE html><html><head> <meta charset...

2018-11-05 13:24:26 1666

原创 ElementUI中的小坑bug记录

1.elementUI的table的formatter(或者vue的filter过滤器),在mouseenter、mouseout等鼠标事件中均会执行相应的方法。这样多次执行,便会影响效率,带来滚动条、分页卡顿问题(如请求后端字典),有办法解决;2.elementUI的table(1).fixed,在任何分辨率下,都有可能出现border不不见了或者不均匀的情况,有办法解决;(2).在...

2019-09-09 15:42:31 1168 1

原创 浅拷贝和深拷贝

var obj={a:1,b:2,c:{d:1,e:[3,4,5]}};浅拷贝:复制的是对象的引用,而不是对象本身,新旧对象还是共享一块内存方法一:for infunction shadowCopy(obj) {    var result = {};    for (var i in obj) {        result[i] = obj[i];    }    retu...

2019-01-07 15:45:42 232

转载 js继承-来自js高级

继承:组合继承(原型继承与借用构造函数):用构造函数实现对实例属性的继承,用原型链实现对原型属性和方法的继承function Super(name) {this.name = name;this.colors = ["yellow", "red"];}Super.prototype.sayName = function() {alert(this.name);}f...

2018-12-30 22:31:14 191

原创 js创建对象的7种模式 --来自js高级

js创建对象的方法:1.工厂模式;function createPerson(name, age, job) {    var o = new Object();    o.name = name;    o.age = age;    o.job = job;    o.sayName = function() {        alert(this.name);    }...

2018-12-29 17:16:41 386

原创 判断某对象是否是某原型的实例的两种方法

instanceof (e.g. obj instanceof Object // obj 对象是Object的实例吗) 和 isPrototypeOf (e.g. Object.prototype.isPrototypeOf(obj) // Object的原型是obj对象的原型吗)

2018-11-15 10:34:12 2699

原创 浮点数值需要注意的

浮点数不能用是否等于判断(因为舍入误差的原因,永远不要测试某个特定的浮点数值);因为0.1+0.2 != 0.31.1+1.3 != 2.4ES6中通过Number.EPSILON(1与大于1的最小浮点数的差,为2的-52次幂,成为极小量)可以判定某个特定的浮点数值function withInError(val1, val2) { // 误差范围设为2的-50次幂    retur...

2018-11-07 10:11:06 502

原创 所有对象都有的属性和方法

constructor;obj.hasOwnProperty(propertyName);obj.propertyIsEnumerable(propertyName);obj.property.isPrototypeOf(obj);obj.toLocaleString();obj.toString();obj.valueOf(); 

2018-11-07 10:09:38 1923

原创 window.open在IE下ajax中的兼容性

问题:在ajax中window.open在IE下会弹出浏览器阻止窗口的问题,进而不再执行window.open打开新tab页的方法 解决方法: 在ajax方法之前加上:windowOpenHandler = window.open("/loading-tips.html"); // /loading-tips.html 为提示加载页面在ajax内部之前window.open的位置用下列方法替换

2016-07-14 18:04:50 721

原创 IE兼容性问题总结(项目中遇到的)

1.console.log 在IE6,7,8下不支持。在IE9下若不打开控制台,会出现代码阻断问题。(所以,当打开控制台后在IEbug消失,可能是由于console.log导致的)。 2. 当在debugger;的情况下,原本出现的bug消失了,说明是由于延迟(debugger;相当于)bug消失,此时,肯定是由于另一个地方的代码和此处的代码设置了类似的东西因冲突而导致了bug. 3. 遮挡OC

2016-07-07 16:57:26 1071

原创 修改chrome下保存用户名密码的默认字体

input:-webkit-autofill {-webkit-text-fill-color: #FFF;}

2016-06-23 16:42:37 803

转载 js clone对象的方法

function clone(obj){ var o; if(typeof obj == "object"){ if(obj === null){ o = null; }else{ if(obj instanceof Array){ o = []

2016-04-13 14:21:14 4104

原创 navigator对象及其应用

1.navigator对象的属性: navigator.appCodeName // 浏览器名称 大多都是Mozilla navigator.appName // 完整的浏览器名称 navigator.appVersion // 浏览器版本,一般不与实际的浏览器版本对应 navigator.cookieEnabled // 表示cookie是否启用 navigator.cpuClass /

2016-04-13 11:43:49 5966

原创 location对象

1.location对象的所有属性: location.href // 完整url location.protocol // 协议 location.host // 服务器名称+端口号 location.hostname // 服务器名称 location.port // 端口号 location.pathname // 目录或文件名 location.search // 查询字符串

2016-04-13 10:38:17 543

原创 解析地址栏中的查询字符串参数,返回对象

1.code:function getQueryStrObject() { var search = location.search, qs = search.length > 0 ? search.substring(1) : "", items = qs.length ? qs.split("&") : [], resultArgs = {

2016-04-13 09:58:39 655

原创 超时调用(setTimeout)和间歇调用(setInterval)

1.超时调用console.log(1);var timeouId = setTimeout('console.log(12)', 2000); // 不会阻塞,而是在多长时间后将此任务添加到任务队列,然后任务队列根据添加进来任务的先后顺序进行执行,故此处不一定是2s后执行。第一个参数可以是函数,也可以是字符串,此处尽量不要写字符串clearTimeout(timeouId); // 可能导致立

2016-04-11 10:24:20 1747

原创 BOM:窗口位置、页面视口大小、window.open

获取窗口位置:// 兼容所有浏览器的写法 var leftPos = (typeof window.screenLeft === "number") ? window.screenLeft : window.screenX; var topPos = (typeof window.screenTop === "number") ? window.screenTop : window.scre

2016-04-08 18:37:57 2254

原创 解决requirejs某文件加载超时问题

1.加载超时问题: 原因:同一个页面里面可能有别的js文件,也引用了这个加载超时的文件(以后称为“此文件”),但是,这两个文件中因为此文件的路径写的不一致,例如:一个文件中写的是在requirejs配置文件中配置的此文件的key(“jquery-ui-timepicker-addon”),而另一个文件中写的是关于此文件的相对路径或者全路径(require([“/libs/jquery/jquery

2016-04-08 16:32:23 3790

原创 解决requirejs循环依赖问题

一.问题:A依赖B(即A引用B且调用B中的方法),B也依赖A,这即为循环依赖,那么,当B调用A中的方法时,会发现A为undefined,这就是循环依赖导致的问题。 二.解决循环依赖的方法: 1.用scope模式传参方式; 2.用pubsub解耦; 3.用require(“A”)的方式: 3.1.enterlib-controller.js(即为A)中引用了enterlib-view.js(

2016-04-06 18:40:03 7561

原创 ECMASCript5新特性之Function.prototype.bind

用途:如何在另一个函数中保持this上下文 实例一:var obj = { fun1: function(cb) { cb(); }, fun2: function() { alert(1); }, render: function() { var self = this; this.fun1(function() {

2016-03-30 10:18:17 460

原创 JS私有变量和静态私有变量

1.私有变量function myObject() { var privateVariable = 10; function privateFun() { return false; } this.publicMethod = function() { privateVariable++; return privateFun()

2016-03-28 18:24:29 6659 1

原创 JS模拟块级作用域

根据js的执行环境作用域和垃圾收集机制可知,js没有块级作用域。例如:for (var i = 0; i < 5; i++) {}alert(i); // 5在java等有块级作用域的语言中,变量i只能在for循环中使用,而在js中却依然可以在for循环结束后访问i,那么,如何解决这个问题呢? 答:用匿名的函数表达式立即执行 的方式来 模仿块级作用域 (function() { /

2016-03-28 16:10:59 719

原创 JS闭包

1.前言引出:变量分为全局变量和局部变量,在函数内部可以直接读取全局变量。那么,在函数外部如何读取函数内部的局部变量呢? 正常情况下是不可以的,但采用闭包可以解决函数外部读取函数内部的局部变量。 2.闭包实例:function a () { var n = 10; function b() { alert(n); } return b;}var

2016-03-24 16:59:13 339

原创 JS函数表达式

1.递归:function digui(num) { if (num <= 1) { return 1; } else { return num*digui(num-1); // 报错 }}var d = digui;digui = null;d(3); 改进:用arguments.callee(num-1) 代替 digui(num-

2016-03-24 09:38:03 340

原创 继承

1.原型链继承:function Super() { this.property = true; this.colors = ["red", "green"];}Super.prototype.getSuperValue = function() { return this.property;}function Sub() { this.property =

2016-03-22 14:26:30 410

原创 ECMAScript5新特性

数据属性特性:[[value]] [[writable]] [[enumerable]] [[configurable]] 访问器属性特性:[[enumerable]] [[configurable]] [[set]] [[get]] 要想修改属性默认的特性,就得用Object.defineProperty() 和 Object.defineProperties();var book = {

2016-03-18 18:38:42 402

原创 面向对象的js程序设计

1.工厂方法:没有解决对象识别问题,即怎样知道一个对象的类型function createPerson(name, age, job) { var obj = new Object(); obj.name = name; obj.age = age; obj.job = job; obj.sayName = function() { alert

2016-03-18 17:05:01 300

原创 js检测是否为数组

通常,js检测是否为数组有如下几种方法(都存在一定缺陷): 方法一:用typeof判断,将会返回object(数组也是对象),但对于排除错误并没有什么帮助; 方法二:检测是否存在length属性或者一些数组方法(如slice()方法),这些检测机制并不健壮,因为没有任何理由确定一个非数组对象就不能具有同样名称的属性和方法; 方法三:使用instanceof进行检测,但是这种检查机制在某些IE浏

2015-11-23 10:45:13 1273

原创 js对象

创建js对象有三种方式:对象字面量、内置的构造函数、自定义的构造函数 对象既有属性、又有方法 1.对象字面量创建对象:var dog = { name: "kitty", getName: function() { return "maomao"; }}完全删除对象属性/方法:delete dog.name;delete dog.getName;2.内

2015-11-09 10:31:38 405

原创 利用display:table-cell让文字垂直居中(无论元素多少行)

html:<div>333333</div>css:div { display: table-cell; width: 200px; height: 200px; text-align: center; vertical-align: middle; border: 1px solid #F00;}说明: 通过display转化成为表格的形式,再采

2015-10-27 14:31:37 14517

原创 前端开发过程中需要注意的细节

1.当浏览器窗口发生变化时,内容较高的部分需要出现滚动条,这时,需要窗口发生改变时计算高度:jQuery(window).bind("resize", function() {self.calculateCameraTreeHeight()});2.当文字内容过长时的处理:给此部分设置宽度,然后设置如下样式:width: 100px;white-space:

2015-10-23 13:24:15 488

原创 JavaScript技巧续(命名规范)

1.构造函数的首字母大写: JavaScript没有类,但是可以通过new调用构造函数:var lily = new Person();首字母小写的函数名和方法表明这些函数和方法不能使用new来调用。 在此说明一些利用requireJs编写JavaScript框架: 写法一(此种写法的弊端在于:将所有方法都暴露出来了):define(["base.self", "ajaxModule", "j

2015-09-16 14:26:24 435

原创 JavaScript技巧续

1.使用parseInt()的数值约定: 此方法共两个参数,第一个参数为字符串,第二个参数为进制,为了避免不一致性和未预测的结果,请每次都具体指定进制参数:var month = "06";month = parseInt(month, 10);另外一个将字符串转换为数值的方法: Number(“06”) 这种方法会比parseInt()快很多,因为parseInt()是解析而不是简单的转换

2015-09-08 23:16:17 332

原创 JavaScript技巧(三)续

1.避免使用eval: eval()函数可以将任意字符串当做一个JavaScript代码来执行。当需要讨论的代码是预先就编写好了(不是在动态运行时决定),时没有理由需要使用eval()。而如果代码是在运行时动态生成的,则也有其他更好的方法来代替eval()实现其功能。即:只需要用方括号将需要访问的动态属性括起来就行了:// 反模式:var property = "name";alert(eva

2015-09-08 23:03:02 380

原创 JavaScript技巧(二)续

1.不要增加内置的原型: 如果遇到以上情形,可以采用如下模式为原型增加自定义的方法:if (typeof Object.prototype.myMethod !== "function") { Object.prototype.myMethod = function() { //implementation... }}2.switch模式:var inspec

2015-09-05 19:41:05 303

原创 JavaScript基本技巧

1.尽量少用全局变量; 2.隐含全局变量与明确定义的全局变量区别:在于能否使用delete操作符撤销变量: 使用var创建的全局变量不能删除; 不使用var创建的隐含全局变量可以删除; 这表明隐含全局变量严格来讲不是真正的变量,而是全局对象的属性,属性可以通过delete操作符删除,但变量不可以。 3.单一var模式:只使用一个var在函数顶部进行变量声明(可以随带着赋值)是一种非常有用的

2015-09-04 10:14:12 527

原创 欢迎使用优快云-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-09-03 13:06:06 286

原创 HTML5特性检测

有四种技术可以用于检测浏览器是否支持某种HTML5特性:1.检测全局对象是否拥有特定的属性以检测地理位置为例:function supports_geolocation(){return !!navigator.geolocation;//如果浏览器支持地理位置API的话,全局的navigator上一定会有一个geolocation属性,反之对象上该属性为undefined。对

2015-05-12 22:37:41 468

原创 english oral-2150407

1.live和stay的区别:stay:停留,待 ,代表短期居住    live代表长期居住e.g.How many days do you want to stay? 你想要住几天呢?I have lived in Taipei for  three years. 我已经在台北住三年了I will stay in that hotel when I am in New Yor

2015-04-07 11:43:55 566

原创 First stage

courtesy 礼貌I beg your pardon?  =  Beg your pardon?  =  Pardon me?  = Pardon? 对不起,请再说一遍好吗?

2015-03-19 11:06:39 360

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除