摘要: 目前Knockout.js的教程和视频也有不少,但好多都是1.x版本的,而官方的更新也是很积极。所以我直接选择通过官方的小教程来学习。正好也可以亲身体验一下MVVM。①将数据绑定到DOM<!DOCTYPE HTML><html><head> <script src="http://knockoutjs.com/js/jquery-1.4.2.min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/2. 阅读全文
posted @ 2012-12-13 19:10 TiestoRay 阅读(508) 评论(0) 推荐(1) 编辑
摘要: 在客户端存储数据时,我们一般都用cookie(不敏感数据),但是在客户端越来越富的今天,cookie可存储的量(每个域最大4k)实在是小。在HTML5中有localStorage可使用,但是这就抛弃了IE8↓。为了兼容,我们可以翻出IE很久以前就搞的一个存储方法:给一个元素添加一个特殊的样式url(#default#userData),之后就可以通过setAttribute和getAttribute来存取键值对形式的数据了。要注意的一点就是在数据改变后要使用save方法,而数据加载初期要load。接下来就贴上使用方法,当使用的浏览器支持HTML5时,就使用localStorage。var lo 阅读全文
posted @ 2012-11-27 13:04 TiestoRay 阅读(349) 评论(0) 推荐(0) 编辑
摘要: ①setTimeout众所周知setTimeout(fn,time)是等待一段时间后,执行函数fn。在这个等待是异步的,也就是他不会站着茅坑,当前JS队列中的其他任务会按序执行但这里有个问题就是time毫秒过后的fn执行问题。是立即执行?不一定。这就像是一个买票的队伍,有正在买票的,有排在后面等待买票的。而setTimeout就相当于刚排到fn买票的时候他突然发现钱包一时翻不出来。所以他就让后面的人先买。过了time时间找到钱包后,如果现在没人买票的话,他可以立即买票。否则他就只能去排队了(当所有队列中的内容执行结束后才执行)。最后io的value为ACDB,也证明了不是100ms后立即执行, 阅读全文
posted @ 2012-11-20 15:55 TiestoRay 阅读(1556) 评论(10) 推荐(0) 编辑
摘要: JSON--JavaScript Object Notation (JavaScript对象表示法)初始JSON的人很容易弄混对象与JSON(我也是刚刚弄清楚 ⊙﹏⊙)。JSON是一种数据格式,经常有人说什么"把数据变成JSON对象然后@#¥……@¥"。对象不一定是JSON格式,而JSON格式的数据(以下简称JSON数据)则一定是对象(简单的数据,如1,"ABCD"都算是JSON格式,这里暂且忽略之)JSON格式是以key-value的形式存放数据的 如:{ "name":"Rose", "age&quo 阅读全文
posted @ 2012-11-15 08:07 TiestoRay 阅读(677) 评论(2) 推荐(2) 编辑
摘要: IE7及以下请求方式用GET的话,URL的限制是个很容易忽视的问题(最大2083个字符)。所以如果URL有可能过长的话,一定要用POST。终止Ajax请求终止请求需要调用XMLHttpRequest对象的abort()方法而在jQuery中的$.get,$.post、$.ajax、$.getJSON、$.getScript...的返回值都是XMLHttpRequest对象.调用abort()后,ajax请求立即停止,但仍然会执行success的回调函数所以在success的回调函数中需要先判断 ajaxGet 或 data是否存在,存在才执行回调函数var ajaxGet = $.get(so 阅读全文
posted @ 2012-11-14 12:21 TiestoRay 阅读(2377) 评论(4) 推荐(1) 编辑
摘要: 事件流DOM同时支持两种事件模型:捕获型事件和冒泡型事件并且每当某一事件发生时,都会经过捕获阶段->处理阶段->冒泡阶段(有些浏览器不支持捕获)捕获阶段是由上层元素到下层元素的顺序依次。而冒泡阶段则正相反。如下图当事件触发时body会先得到有事件发生的信息,然后依次往下传递,直到到达最详细的元素。这就是事件捕获阶段。还记得事件注册方法ele.addEventListener(type,handler,flag)吧,Flag是一个Boolean值,true表示事件捕捉阶段执行,false表示事件冒泡阶段执行。接着就是事件冒泡阶段。从下往上 依次执行事件处理函数(当然前提是当前元素为该 阅读全文
posted @ 2012-11-06 13:45 TiestoRay 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 利用iframe和元素的contenteditable属性可以创建简单的富文本编辑区。①document有一个designMode属性,有两个可能的值 "on","off"(默认)。on:文档进入可编辑状态,这时候可以随意操纵文档内的元素。 例如拖动图片到处乱放啊,增删文字之类的,很有趣。off:文档结束可编辑状态,就变成了普通的页面。现在如果我们在页面中放置一个空iframe,并将其designMode设置为"on",就可以创建一个富文本编辑区。注意的是智能在页面完全加载后才能设置。举例如下:<html> <bod 阅读全文
posted @ 2012-10-30 16:39 TiestoRay 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 效果良好的表属性设置:<table cellSpacing="0" cellPadding="0" border='1' bordercolor="black" style='border-collapse:collapse;table-layout: fixed'></table>很多人都有这种经历:当某个td中没有内容或者没有可见元素时,td的border也会消失。解决方案就是给table添加样式border-collapse:collapse一般的文字截断(适用于内联与块) 阅读全文
posted @ 2012-10-29 12:29 TiestoRay 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 最近一直看javascript,看得我是头昏眼花,所以选择了学学Node.js,也算是换点新鲜空气吧Node.js中的基本语法与javascript完全相同,上至闭包之类的模式,下到function,var,prototype。所以对JSer来说,简直太容易上手了。这是我入门的教程地址:Node入门开始正文①生成引用类例:-----------------first.js-----------------function baby(){}exports.baby = baby;②添加引用类例:var myFirst = require("first");//要引用的文件名这 阅读全文
posted @ 2012-10-26 16:28 TiestoRay 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 鼠标事件鼠标移动到目标元素上的那一刻,首先触发mouseover之后如果光标继续在元素上移动,则不断触发mousemove如果按下鼠标上的设备(左键,右键,滚轮……),则触发mousedown当设备弹起的时候触发mouseup目标元素的滚动条发生移动时(滚动滚轮/拖动滚动条。。)触发scroll滚动滚轮触发mousewheel,这个要区别于scroll鼠标移出元素的那一刻,触发mouseout事件注册现在共有三种事件注册方案。①DOM0事件注册:通过给元素的属性赋值来绑定事件,注意,这种方案只能绑定有一个处理句柄。如果绑定两次,则先绑定的句柄会被替代。例如//注册事件处理句柄dom.oncli 阅读全文
posted @ 2012-10-11 15:28 TiestoRay 阅读(551) 评论(1) 推荐(1) 编辑