JavaScript
xiaoqiu_net
学无先后,达者为师。
展开
-
js面向对象-原型
官方定义:prototype属性使您可以向对象添加属性和方法。Prototype,原型法设计模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。在.NET中实现ICloneable接口Clone方法来实现原型。原型法主要思想:现在有一个类A,我想创建一个类B,B类是以A类为原型,并且能进行扩展,称B的原型是A。模拟面向对象中的继承思想。Java原创 2016-07-29 13:39:16 · 701 阅读 · 1 评论 -
js跳转页面被iframe嵌套的问题
问题如下:登录的时候,我们后台会进行验证,如果Session过期,我们一般会跳转到登录页面,这里使用的iframe,页面又被嵌套了一层。可以在login.aspx登录页面中加入js代码处理:if(window != window.top){ window.top.location=location;}或者:if (window != top) top.location原创 2017-03-09 09:38:43 · 2994 阅读 · 0 评论 -
js模块化管理起步-import和export用法
js模块化管理起步-import和export用法原创 2017-03-26 15:57:50 · 26114 阅读 · 0 评论 -
js无法设置本地cookie
设置本地cookie很简单啊,直接是document.cookie="key=value";这样就直接设置好了。然后再请求服务端的时候,http自动会把header里面的内容给带过去。今天怎么设置也无效,检查了浏览器设置, 也没有禁用cookie。然后发现在后面要加一个path=/才行.path=过期时间如:document.cookie="token=0000原创 2017-05-10 23:12:15 · 15039 阅读 · 2 评论 -
js优化-prototype原型的使用
var builder = function (id) { this.init($(id)); this.forms = []; /* this.init = function () //写在内部,每个实例都会分配一个function,如果又存在大量的DOM存取,操作开销就大了. { var $row = $("").appendTo($(id).addClas原创 2017-05-25 14:32:55 · 1982 阅读 · 0 评论 -
js中的this理解
this看起来理解很简单,就是当前对象,那么在使用的时候,经常会犯错误,确定不了this指向是哪个对象。在函数里面:function Person(){ this.name = name;}var p = new Person(); //那么此时this指向的就是这个p对象$.ajax({....里面的this指的就是ajax对象。})看原创 2017-05-18 10:09:10 · 340 阅读 · 0 评论 -
js缓存变量,减少DOM操作开销
DOM是页面元素对象的体现,DOM是个树,每个DOM节点和其他节点有子父、兄弟关系,每次寻找的时候,都会一层层的去寻找,对于相同且已经查找过的节点,每次都去重新找,如果节点层级关系多了,性能就很低了。每次$()都会创建一个新的DOM对象。 在一个事件/区域内的this对象,就是代表事件调用本对象。如果每次使用到再重新去取,显然多余了。如果使用该对象频率高,应该吧变量缓存起来。不要再每次$(t原创 2017-06-14 17:22:02 · 1508 阅读 · 0 评论 -
js去掉html字符串中的所有标签元素,结合vue表达式使用
1.没去掉之前,绑定的代码是:显示的效果是将对应的html元素也显示出来了,这里我只需要他的纯文本就好了, 不含任何格式(html代码):2.去掉html字符串中的所有标签元素js代码:function delHtmlTag(str){ return str.replace(/]+>/g,"");}3.vue绑定更改:4.只显示纯文本原创 2017-09-28 18:15:51 · 8344 阅读 · 3 评论 -
js滚动条保持在容器最底部
table容器高度,table内容是动态增加的 也就是动态变高的var tableHeight = $("#panel>table").height();<div id='panel' style='height:520px;overflow:auto'> div容器设置了高度,超过这个高度就让他出现纵向滚动条,滚动条保持在div容器最底部,计算一下里面的ta...原创 2017-09-21 16:06:20 · 10192 阅读 · 0 评论 -
layer弹层遮罩挡住窗体解决
使用代码: 这里面某个按钮触发弹层 如果上面的按钮触发了弹层 layer.open 且content是某个DOM元素content:$('#dialog')那么这里弹出层,遮罩会遮住到弹窗导致操作不了。官网给出的说法是 如果弹层的内容content是某个DOM元素的话,要放在body的根节点下。不能放在div里面了。我看了html代码原创 2017-12-13 21:36:42 · 29454 阅读 · 11 评论 -
layui-select动态选种值
layui的select在form渲染后,会重新构造一份DOM数据,将原生的select元素隐藏了。我是使用的vue动态绑定的options,这里绑定v-model就失效了。我想编辑某行的时候,动态选中select的值。1.需要改变对应input的显示值。2.对应新构造的select中的值,layui-this样式标识选中。那么在table编辑的时候,代码如下:原创 2017-12-23 20:12:54 · 6367 阅读 · 0 评论 -
layui-form表单自定义监听多个select
layui一个表单中多个select下拉选择事件监听,官网的写法代码太冗余了,自己封装扩展一下,形成回调形式。由于保存了图片,直接看图说话吧。原创 2017-12-24 20:20:21 · 12995 阅读 · 1 评论 -
js禁止方法频繁执行
我们在点击网页按钮时候,会连续点击,则对应的会频繁的请求后台的数据,如何避免这种操作。用户会在某个时间内一直点,一秒内点了很多下,我们只执行最后一个操作就好了。利用setTimeOut来实现,每个时间内只执行一次,每次来的时候就清空上一次的计时器,开启新的。var timeId = null;function search(){clearTimeout(ti原创 2017-05-12 22:54:52 · 4243 阅读 · 0 评论 -
js访问对象属性两种方式
在javascript中我们通常使用.来访问对象的属性,那么也可以使用[ ]来访问对象属性。object.propertyName;object['propertyName'];[ ]访问更为灵活,可以写表达式,而.只能进行硬编码.如:_Titan.notify[data.IsSuccess ? 'success' : 'error'](data.msg);原创 2017-02-08 17:13:11 · 3671 阅读 · 0 评论 -
js数值格式化
$.extend({ /// 格式化数值 /// 需要进行格式化的数值 /// 保留的小数位 /// 小数点符号 /// 千分位符号 formatNumber: function (pNumber, pDecimals, pDecimalPoint, pThousandsSeparator) {原创 2016-11-30 16:26:42 · 766 阅读 · 0 评论 -
js面向对象-闭包
理解变量的作用域、垃圾回收。javascript语言特殊之处:在函数内声明变量一定用var,不用的话实际上是声明了一个全局变量。js若类型语言,灵活,但安全性低。如: function Person() { this.name = "xiaoqiu"; this.GetName = function ()原创 2016-07-29 14:46:03 · 460 阅读 · 2 评论 -
js-浅拷贝,深拷贝
在JavaScript中,存储对象都是存储的对象的地址,浅拷贝(复制)会导致复制的多个对象指向内存同一块地址。相当于C#中的引用类型对象。function Person(){ this.name = name;}var p = new Person();p.name = "123";p2.name = "test";alert(p.name); 结果是test而深拷原创 2016-08-28 18:12:18 · 632 阅读 · 0 评论 -
javascript中的可变参数
js是弱类型语言,不能像C#那样使用param关键字来声明形参是一个可变参数。但它内置提供了一个arguments对象,也就是参数数组了。这样就相当于可变参数了。遍历:function IsFunction() { var b = true; for (var i = 0; i < arguments.length; i++) { if (typeo原创 2016-08-10 08:45:23 · 1164 阅读 · 0 评论 -
MVC接收前台json数据,反序列化为指定实体对象
前台我们一般用ajax来发送数据到后端进行处理,如果json数据结构和后台的实体类结构一致,就直接可以反序列化为指定的对象进行操作,非常方便。前端发送的json数据结构:后端实体结构: public partial class Cures { public string CureID { get; set; } public str原创 2016-08-10 14:25:37 · 5640 阅读 · 0 评论 -
html5 web客户端数据存储
html5特性-web存储,提供了两种在客户端存储数据的方式,很灵活.web storage|--sessionStorage:数据在同一个会话中可以访问并且会话结束后数据也随之销毁。会话级别存储|--localStorage:用于数据本地持久化存储,除非主动删除数据,否则不会过期。比cookie使用更灵活,效率也高,键值对存储。他们都具有相同的方法,如setItem,getI原创 2016-08-10 14:57:17 · 499 阅读 · 0 评论 -
jQuery选择器总结
jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("div") 选择所有的div标签元素,返回div元素数组 $(".myClass") 选择使用myClass类的css转载 2016-09-01 09:25:38 · 279 阅读 · 0 评论 -
js回调很灵活,类似C#委托
这两天在重构自己以前写的js代码,以前写的重复的代码太多了,想优化一下。以前没有这样写过回调,原来发现如此灵活也很简单了。//弹出确认对话框操作 //msg:提示消息//call:回调函数function ConfirmDialog(msg, call) { $.messager.confirm("提示", msg, function (b) { if (b)原创 2016-08-23 14:58:52 · 1185 阅读 · 0 评论 -
jQuery防止动画重复执行
div { position: absolute; right: 0px; background-color: #abc; width: 90px; height: 90px; margin: 5px; display: none;原创 2016-09-18 09:33:01 · 3740 阅读 · 0 评论 -
jQuery的$.fn和$.extend
$.fn是指jQuery的命名空间,加上fn上的方法及属性,会对每一个jQuery实例有效。如扩展了$.fn.test = function(){} 则是对jQuery扩展了一个test方法。那么每个jQuery实例都可以引用这个方法。$.fn.test=function(){ console.info($(this));}$("#div1").test();原创 2016-11-03 16:41:29 · 368 阅读 · 0 评论 -
jQuery操作DOM节点(一)
浏览器中 什么是BOM?是什么DOM?BOM:Browser Object Model 浏览器对象模型,提供一些对浏览器的操作的对象,比如:window对象,window.open,alert....DOM: Document Object Model 文档对象模型,HTML页面看作一个文档,文档中的每个标签元素都看作一个对象(DOM节点),每个DOM节点有一定的关系(父子、兄弟)。形原创 2016-11-04 09:52:54 · 909 阅读 · 0 评论 -
页面遮罩效果
效果:遮罩效果,就是把页面给遮挡了,让用户无法再点击页面的元素。原理就是 弄一个遮罩层,在所有元素的最上方,让这个元素铺满屏幕,所以点击实际是点击的这个元素。利用绝对定位,使元素脱离文档流,z-index属性设置其浮动层的位置,要做这个一个对话框,假设遮罩的z-index是100,那么这个对话框div块的z-index就是101,在它上方了.css样式:.mask {原创 2016-11-14 14:29:13 · 1703 阅读 · 0 评论 -
js扩展Date对象 日期格式化
Date.prototype.format = function (format) { if (!format) { format = 'yyyy-MM-dd';//默认1997-01-01这样的格式 } var o = { "M+": this.getMonth() + 1, //month "d+": this.getD原创 2016-11-30 16:25:41 · 582 阅读 · 1 评论 -
文本框oninput事件,在中文输入法状态多次触发
如图,在中文输入法状态中,还在检索拼音,这时事件就会触发,这不是我们想要的,xiaoqiu x,xi,xia,xiao....都会触发,这样频繁的请求会给接口造成挺大压力的。我们可以使用js里面防抖动的方式或DOM3的复合事件来解决此问题。回顾一下onchange和input事件: oninput事件在<input>或<textarea>元素的值发生改变时触发 o...原创 2018-04-11 11:16:21 · 22856 阅读 · 4 评论