2013年11月6日

【Javascript】JS单例模式的简单实现

摘要: 代码虽然简单,但是功能不少,可以是带参数的构造函数,也支持继承的。写在这便于记录以后复用。var Singleton = function (){ var single; return { getInstance:function (fn, args){ if (single){ return single; } else { var F = function (){}; F.prototype = fn.prototype; ... 阅读全文

posted @ 2013-11-06 15:16 echoloyuk 阅读(427) 评论(0) 推荐(0) 编辑

2013年6月27日

【Javascript】Javascript中如何判断变量是数组类型

摘要: 在Javascript中,数组与传统的数组类型不同,它是一个特殊的对象,并具有可以通过数字作为下标的访问数据方式,特殊的length,数组相关的方法等特点。这个特性使得JS中的数组使用起来更加灵活,但与此,也带来一些小麻烦,有时我们会把数组当成对象,有时又会将对象当成数组。因此,判断该变量是否是数组变得十分必要。那么如何判断一个变量是数组呢? 我们首先想到的就是typeof方法,最简单的例子:var a=[];alert(typeof a);上述代码弹出的不是array,而是object!个人感觉这是设计的失败,因为typeof得出的结果没有意义(并不代表它错了,因为数组确实是对象,只是... 阅读全文

posted @ 2013-06-27 15:51 echoloyuk 阅读(518) 评论(2) 推荐(0) 编辑

2013年4月8日

【记】input type为checkbox或radio时的click默认事件

摘要: 在input中,如果type为checkbox或radio时,浏览器会将该input渲染成为系统的单选或多选组件,如果这时,我们在这个input上绑定click事件,那就要小心谨慎使用e.preventDefault()这个方法(jQuery中整合了这个方法使得它能够兼容去掉浏览器中的默认事件)。之所以要说谨慎使用,就是,如果你在这个事件的响应程序中判断该checkbox是否选中时,得到的结果和真正的选中状态会有所不同。下面先从一个简单的示例说明这个现象。(为了简单起见,我使用了jquery,他能节省选择器部分的代码,但不影响本文需要说明的问题)。代码段如下:<script type=& 阅读全文

posted @ 2013-04-08 09:21 echoloyuk 阅读(6099) 评论(0) 推荐(0) 编辑

2013年3月20日

【记】jQuery中的选择器:visible对visibility:hidden的处理

摘要: 首先先介绍visibility这个CSS属性。 visibility用于表示该元素是否显示,其取值有: visible:设置对象可视。 hidden:设置对象隐藏。 collapse:主要用来隐藏表格的行或列,隐藏的行或列能够被其他内容是用。 这里需要说明的是,collapse在IE6及更早的浏览器不支持,它的作用只在表格中生效,对于其他的对象,等同于display:hidden。 介绍到这里,也许我们会有个疑问,那就是visibility:hidden与display:none有什么区别呢?他们的不同之处就是隐藏的对象是否占据位置。visibility:hidden在对象隐藏... 阅读全文

posted @ 2013-03-20 16:36 echoloyuk 阅读(6698) 评论(0) 推荐(0) 编辑

2012年11月29日

【记】three.js的一个简单的代码记录

摘要: 有时间首次尝试了一下three.js,这真是个非常强大的框架,以下就是本人的第一个three.js的"helloworld"。 关于how to get start,总结起来就是以下这几步引入three.js,创建必要的html结构创建渲染器创建相机创建一个场景添加相关的模型渲染 多了不说,直接上代码:<!DOCTYPEhtml><html><head><metacharset="utf-8"/><title>HelloWorld</title><style>#view{ 阅读全文

posted @ 2012-11-29 17:21 echoloyuk 阅读(539) 评论(0) 推荐(0) 编辑

2012年11月20日

【记】Javascript的函数直接量定义

摘要: 在Javascript中允许函数通过直接量来定义。一般情况下,我们定义函数时,最常见的方式是通过function语句进行定义,例如:functionsum(a,b){returna+b;} 这样,sum这个函数就在它所在的作用域中可以被任意调用了。除此之外,函数的定义方式可以通过另外一种方式,就是通过直接量定义。例如上面这个例子,我们可以用另外一种方式:varsum=function(a,b){returna+b;} 上述代码就是函数通过直接量的方式进行定义。函数直接量是一个表达式,它可以定义匿名函数。函数直接量的语法和function语句十分相似,只不过,它被用作表达式的一部分,而不... 阅读全文

posted @ 2012-11-20 11:28 echoloyuk 阅读(1554) 评论(4) 推荐(2) 编辑

2012年11月15日

【FireFox】在Firefox中,关于隐藏table中某一行tr,其他td的边框显示异常

摘要: 最近在开发的过程中遇到了这样的一个奇怪的问题:一个table中,只有一行中的td上有border,其他的td没有边框。但是,通过js隐藏某一行时,意外的发现其他的td中居然出现了边框。当然,直接上简单示例吧,要不这个情况很难用描述语言说清楚。 为了说明这个问题,特意写了一个非常简单的示例页面,它只包含了非常必要的结构和样式。html部分如下:<buttononclick="document.getElementById('hide').style.display='none'">hide</button><tab 阅读全文

posted @ 2012-11-15 17:17 echoloyuk 阅读(3366) 评论(1) 推荐(0) 编辑

2012年7月23日

【Javascript】Javascript中的函数调用模式

摘要: 在Javascript中,一个函数有四种调用模式,分别是:方法调用模式、函数调用模式、构造器调用模式和Apply或Call调用模式。本人在实际的工作中,各种调用模式都用过。这俩想特别提到的是函数调用模式,因为它的一点小特性使得我的一些代码无法正常工作。其实总结起来,还是因为个人的经验不足。 在函数调用模式中,主要的问题就是this所指向的对象,到底是调用者本身,还是全局的问题。其实,我们很多时候希望this指向的是调用者本身,但是实际上它是指向了window全局对象。个人感觉,这是Javascript语言本身的不足,没能满足大多数的需要。为了说明这个问题,先看如下代码:varB={b:1... 阅读全文

posted @ 2012-07-23 16:51 echoloyuk 阅读(199) 评论(0) 推荐(0) 编辑

2012年7月21日

【记】屏蔽浏览器shift+鼠标滚轴事件

摘要: 最近在工作中有一个这样的需求,就是一个列表,每个列表元素中有一个勾选框(checkbox),用户可以按住shift,点击一个勾选框,再点击另一个勾选框,那么在这两个勾选框之间的所有选项都选中。这个需求本身很简单,但是,带来了一些比较尴尬的问题,那就是,如果列表足够多,可能出现浏览器显示不下,出现滚动条。这时,如果用户按住shift点击了第一个,然后通过鼠标滚轮拉到最下面,点击最后一个就会出现问题。什么问题呢?就是按住shift时,滚动鼠标滚轴,就会触发浏览器的默认事件,页面前进或者后退。这个问题非常头疼,因为用户按住shift+滚轴的情况非常普遍。一个折中的办法就是屏蔽掉本页的shift+.. 阅读全文

posted @ 2012-07-21 14:58 echoloyuk 阅读(1280) 评论(0) 推荐(0) 编辑

2012年6月25日

【flash】关于Flash在火狐下出现一个默认虚线的问题

摘要: 最近遇到了flash在Firefox下出现虚线框的问题,在网上找了一些方法,感觉很乱,那些通过js解决的不是我遇到的。我遇到的是,鼠标点击flash之后,会在flash边界上显示虚线。个人感觉是firefox下的焦点问题。而且经过个人的实验,这个问题貌似只在XP系统下的FireFox出现。因此在网上找了下配置,可以通过修改FireFox配置来对这个问题进行屏蔽:1,在Firefox地址栏输入about:config,出现提示,点击“保证会小心”2,搜索框中搜索:display.focus3,将搜索结果中的:browser.display.focus_ring_on_anything 设置为 t 阅读全文

posted @ 2012-06-25 15:03 echoloyuk 阅读(369) 评论(0) 推荐(0) 编辑

导航