摘要: 刚才我帮一个同事解决了他写的js代码中,后添加的元素没有绑定事件的问题(他把事件直接绑定在了子元素而非父元素)。这是一个很简单的关于事件流的问题,回到座位上我这么想着,又突然回想到一年前的我,原生js基本语法都不太清楚,jQuery会用一点儿选择器和CSS,半天写出一个图片轮播换就觉得很好很强大。对js的理解也仅限于写一些网页特效,没想过它在后台数据交互上能有多大名堂。 而现在这些想法都改变了。从.net到html+css再到js,这几年的经历跟做梦似的。 在新公司近一年的工作和学习让我收获很多成长很多,而在这个过程中,我也深刻地认识到了曾经的自己是多么愚昧,现在自己依然是多么的无知。我想我重 阅读全文
posted @ 2013-05-17 17:02 木头小木头 阅读(186) 评论(0) 推荐(0) 编辑
摘要: jQuery([selector, [context]])该函数接收一个包含CSS选择器的字符串,然后用这个字符串去匹配一组元素。jQuery的核心功能都是通过这个函数实现的。jQuery(selector, [context])selector:css选择器context:作为待查找的DOM元素集、文档或jQuery对象。jQuery(element)element:一个用于封装成jQuery对象的DOM元素jQuery(elementArray)elementArray:一个用于封装成jQuery对象的DOM元素数组jQuery(object)object:一个用于封装成jQuery对象的 阅读全文
posted @ 2013-05-14 16:08 木头小木头 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 面向对象(Object-oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同。ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。” 严格来讲,这就相当于说对象是一组没有特定顺序的值。 对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。 正因为这样,我们可以把ECMAScript的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数。每个对象都是基于一个引用类型创建的,这个引用类型可以是原生类型,也可以 阅读全文
posted @ 2013-04-24 10:08 木头小木头 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 参考:JavaScript高级程序设计(第2版)第四章-作用域与第七章-匿名函数在弄清闭包之前,先来简单了解一下执行环境和作用域。每个执行环境都有一个与之相关的变量对象,环境中定义的所有变量和函数都保存在这个对象中。全局执行环境是最外围的一个执行环境,在WEB浏览器中,它被认为是window对象。 ... 阅读全文
posted @ 2013-04-10 12:04 木头小木头 阅读(354) 评论(0) 推荐(1) 编辑
摘要: 最近在看怎么写js插件,尝试写了一个简单的图片轮播插件 jqury.picPlay.js 。基本html框架为,根据需要往里添加class为.pic、.num、.txt的div来分别放置图片列表,数字列表和文字列表。调用方式:$.fn.jsPicPlay(setting);setting可以设置三个... 阅读全文
posted @ 2013-04-03 18:24 木头小木头 阅读(1191) 评论(4) 推荐(0) 编辑
摘要: 假设div1是要打印的内容iddocument.body.innerHTML=document.getElementById('div1').innerHTML;window.print();执行这段代码就可以打印了 阅读全文
posted @ 2013-03-22 11:31 木头小木头 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 可以用table和canvas标签两种方式来实现:table(兼容IE)<div id="qrcodeTable"></div>jQuery('#qrcodeTable').qrcode({ render : "table", text : "http://jetienne.com"}); canvas<div id="qrcodeCanvas"></div>jQuery('#qrcodeCanvas').qrcode({ text : 阅读全文
posted @ 2013-03-21 13:26 木头小木头 阅读(2433) 评论(1) 推荐(1) 编辑
摘要: 文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构。HTML或XML页面中每个组成部分都是某种类型的节点,这些节点又包括着不同类型的数据。 通过DOM创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助DOM提供的API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。IE中所有的DOM对象都是以COM对象的形式实现的。这意味着IE中的DOM对象与原生JavaScript对象的行为或活动特点并不一致。 节点层次DOM将任何HTML或XML文档描绘成一个由多层次 阅读全文
posted @ 2013-03-21 11:53 木头小木头 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 参考JavaScript高级程序设计在默认情况下,sort()方法按升序排列数组项--即最小的值位于最前面,最大的值排在最后面。为了实现排序,sort方法会调用每个数组项的toSting()转型方法,然后比较得到的字符串,以确定如何排序。即使数组中每一项都是数值,sort()方法比较的也是字符串,如... 阅读全文
posted @ 2013-03-20 10:17 木头小木头 阅读(538) 评论(0) 推荐(0) 编辑
摘要: 事件对象 在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。包括导致事件的元素、事件的类型,以及其他与特定事件相关的信息。例如,鼠标操作导致的事件对象中,会包含鼠标位置的信息,而键盘操作导致的事件对象中,会包含与按下的键有关的信息。所有浏览器对象都支持event对象,但支持方式不同。DOM中的事件对象兼容DOM的浏览器会将一个event对象传入到事件处理程序中。无论指定事件处理程序时使用什么方法(DOM0级或DOM2级),都会传入event对象。来看下面的例子var btn = document.getElementById("myBtn 阅读全文
posted @ 2013-03-15 17:18 木头小木头 阅读(764) 评论(1) 推荐(2) 编辑
摘要: 1、事件流事件冒泡IE的事件流叫做事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。事件捕获事件捕获的思想是不太具体的节点应该更早的接收到事件,而最具体的节点应该在最后接收到节点。事件捕获的用意在于事件到达预定目标之前捕获它。DOM事件流“DOM2级事件流”规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和冒泡阶段。首先发生的是事件捕获,为截获事件提供了机会。然后是实际的目标接收到事件。最后一个阶段是冒泡阶段,可以在这个阶段对事件作出响应。以简单的HTML页面为例,单击<div> 阅读全文
posted @ 2013-03-14 18:28 木头小木头 阅读(4477) 评论(0) 推荐(2) 编辑
摘要: DTD已声明 IEdocument.documentElement.scrollHeight 浏览器所有内容高度 ,document.body.scrollHeight 浏览器所有内容高度document.documentElement.scrollTop 浏览器滚动部分高度,document.bo... 阅读全文
posted @ 2013-03-12 16:43 木头小木头 阅读(17665) 评论(4) 推荐(6) 编辑
摘要: 向左向右向左向右HTMLView Code 滚动列表 ... 阅读全文
posted @ 2013-03-06 17:43 木头小木头 阅读(1687) 评论(6) 推荐(0) 编辑
摘要: 看到别人写的JS,ajax请求地址后加随机参数,比如XXXX?t= + new Date().getTime()。一开始搞不懂为什么,网上查了资料,原因是防止浏览器缓存。浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存。当url请求地址不变时,有时候会导致浏览器不发送请求,直接从缓存中读取之前的数据。如果数据改变了,而没加随机数,读取的数据会跟之前一样。加上随机数,就是欺骗浏览器url改变了,会每次都向服务器发送请求而不去读缓存。 阅读全文
posted @ 2012-11-29 10:25 木头小木头 阅读(9297) 评论(0) 推荐(1) 编辑
摘要: 做随机显示推荐广告的时候,需要随机排序数据数组,就动手写了一个,如下: 1 function randomOrder (targetArr) { 2 var originalArr = targetArr; 3 var newArr = []; 4 var arrLength = targetArr.length; 5 var j = -1; 6 var tmpObj = {}; 7 for(var i = 0;i < arrLength;i++){ 8 while(true) { 9 if(tmpObj... 阅读全文
posted @ 2012-11-27 11:32 木头小木头 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 1、变量ECMAScript 变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话来说,每个变量仅仅是一个用于保存值的占位符而已。定义变量要使用var操作符(注意var操作符是一个关键字),后跟变量名,如下所示:var message;这行代码定义了一个名为message的变量,该变量可以用来保存任何值(未经初始化的变量,会保存一个特殊的值—undefined).ECMAScript也支持直接初始化变量,因此在定义变量的同时就可以设置变量的值,如下所示:var message = "hi";在此,变量message中保存了一个字符串"hi" 阅读全文
posted @ 2012-11-26 18:15 木头小木头 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 1、window.location.href 与 document.referrerwindow.location.href 设置或返回完整的URLlocation.hash 设置或返回#后面的URL(锚点)document.referrer 属性可返回载入当前文档的文档的URL,即前一个页面。如果当前文档不是通过超级链接访问的 则为null。2、event.keyCode当用户按下一个键盘按键时,发生onkeydown事件。IE浏览器使用event.keyCode取回被按下的字符。Netscape/Firefox/Opera使用event.which。列一下常用的keyCode值keycod 阅读全文
posted @ 2012-09-12 11:34 木头小木头 阅读(2738) 评论(0) 推荐(0) 编辑
摘要: empty()方法移除所有匹配元素的子节点(包括文本)。remove()方法移除所有匹配元素,包括子节点与文本。 阅读全文
posted @ 2012-08-24 15:39 木头小木头 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 之前没有听说过这个函数,于是查了相关资料,该函数获取元素在当前页面的位置,返回结果为一个ClientRect对象。这个对象有top、bottom、left、right几个属性。top:元素顶部距离页面顶部的大小。bottom:元素底部距离页面顶部的大小。left:元素左部距离页面左部的大小。right:元素右部距离页面左部的大小。举例代码<p id="box" style="margin:10px 0 0 50px; width:100px; height:30px; background:#ccc;"> </p><scri 阅读全文
posted @ 2012-08-22 16:05 木头小木头 阅读(458) 评论(0) 推荐(0) 编辑
摘要: Zen Coding 是快速编写HTML/CSS的工具。在Notepad++等编辑器下使用可以大大增加代码书写效率。主要功能组件Expand Abbreviation 展开缩写展开缩写的语法规则同CSS选择器相同,当需要展开的元素有多项时用*表示举例输入以下代码div#container>div#slider+div#main>div.news>ul>li*5>a使用快捷键CTRL+E执行展开缩写功能,效果如下图Wrap with abbriviation 嵌套代码使用E*将会在每一行都嵌套该元素举例输入以下代码使用快捷键CTRL+SHIFT+A在弹出的窗口中输入 阅读全文
posted @ 2012-07-05 14:53 木头小木头 阅读(251) 评论(0) 推荐(0) 编辑