随笔分类 - 04.JavaScript
摘要:jQuery有一个很好用的delegate(事件委派)功能,可以给当前以及将来(动态添加)的元素绑定一个事件处理函数。比如下面的例子,动态添加一个输入文本框后,我想让所有文本框(不管是不是动态添加的)在获取焦点时,自动转大写。<!doctype html><html><head> <title>delegate测试</title> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.
阅读全文
摘要:业务系统中,很多录入人员习惯于用Enter键来代替Tab键切换控件焦点(虽然我个人并不觉得这样录入速度会变得有多高效,呵呵),有需求了,自然就得想办法满足。思路:为了更灵活的控件焦点顺序,我决定用TabIndex来做文章,每个输入控件按下回车时,找到下一个比当前控件TabIndex更大且最接近的控件,然后focus().XAML界面部分:<UserControl x:Class="tab_key_test.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation&qu
阅读全文
摘要:看了铁哥关于haXe的介绍,忍不住体验了一吧:一、下载安装flashdevelophttp://flashdevelop.org/ 到这上面下载最新的flashdevelop并安装(注:安装这个需要java sdk1.6以上版本,同时还要安装.netframework)tips:flashdevelop并不能识别最新的jdk 1.7,如果你的机器上安装的是1.7版本,需要手动编辑x:\Program Files (x86)\FlashDevelop\Tools\flexsdk\bin\jvm.config找到java.home="C:\Java\jre7\"把java.ho
阅读全文
摘要:jQuery中有一个focus()方法能设置对象的焦点,在1.7以下的版本中,不管对象是不是disabed状态,这个方法都不会报错(只是当disabled时,设置焦点的代码无效),但在1.7版本中,如果对象是disabled状态,这时调用focus()方法时,会直接报异常:Error: Can't move focus to the control because it is invisible, not enabled, or of a type that does not accept the focus.意思是:不可见或不可用的元素无法获取焦点。(特别提一下:IE9很NB,能自动
阅读全文
摘要:web开发中,如果需要将“服务端返回的json对象”绑定到“现有页面上的dom元素”,传统赋值的方式太繁琐,写起来也很累(特别是json对象很大时),于是想出了下面的偷懒方法,不过有二个前提:1、元素的id要与json对象中的属性命名一致2、json对象中的属性名,最好不要重复<!doctype html><html><head><title>json对象遍历演示</title><script type="text/javascript">var obj = {a:'a1',b:'
阅读全文
摘要:不废话了,直奔主题吧wcf端:近几年比较流行restful,为了能让ajax调用,同时也为了支持restful风格的uri,在创建一个Ajax-enabled Wcf Service后,必须手动修改svc文件,指定Factory,即:注:如果不添加Factory,则wcf将无法用类似http://localhost/helloWorld.svc/Hello/person/name 的restful方式直接访问。同时还要去掉web.config中的即类似: --> 好了,开始写代码,鉴于wcf调用时有GET/POST二种方式,下面把几种常用的情况都写一个示例方法:usin...
阅读全文
摘要:很多时候,美工会觉得默认的select下拉框很难看(特别是右侧的下拉箭头按钮),他们通常喜欢用一个自定义的图标来代替这个按钮。这样就只能用 js + div 来模拟了,倒腾了一番,用jQuery模拟了下,当然网上这种文章也不少,只是懒得去看找,又重新发明轮子鸟:)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="
阅读全文
摘要:javascript的跨域get很容易搞 定,但是跨域post就有点复杂了,今天无意看到大牛“张宴”的文章:http://blog.s135.com/ajaxcdr/,思路很不错,转载于此(其实这个思路要是看懂了,也很容易借助silverlight实现)最近的一个项目中,需要通过 JavaScript 提交表单数据到另一个域名下的PHP接口(因为数据较大,需要HTTP POST方式提交),并获取PHP接口的返回值,在页面无刷新、无跳转的情况下,更新div标签内的内容。 浏览器出于安全考虑,是不允许JavaScript代码进行跨域操作。JavaScript 和 AJAX 跨域访问分为两大类,一是
阅读全文
摘要:场景:某页面用了js延时加载技术处理所有图片,以改善用户体验,但是有几个图片不想延时加载,要求把它们单独挑出来。研究了一下jQuery的API文档,搞掂了,jQuery真的很方便,贴在这里备份:<!doctype html><html> <head> <title>菩提树下的杨过</title> <script type="text/javascript" src="http://img.24city.com/js/jquery-1.4.3.min.js"></script&g
阅读全文
摘要:百度什么都知道:当然也包括斐波那契(Fibonacci)数列在一般算法教材中,把Fib数列都是当做递归的经典示例来讲解的:javascript的写法如下:在IE9以下的IE浏览器中,跑到fib(40)基本上浏览器就罢工了,比如:但是在IE9下,居然能挺过来,看来IE9对javascript引擎的优化确实效果不错当然,这个数列除了递归,还有其它非递归的解法,一并贴在这里收录一下:
阅读全文
摘要:今天遇到一个需要用javascript将url中的某些参数替换的需求,想起了不久前从司徒正美先生的博客中淘到了一个parseUrl函数,正好可以借此实现,代码整理如下:
阅读全文
摘要:依旧只是贴在这里备份,方便以后粘贴复制,高手绕过,以免浪费时间:)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/x...
阅读全文
摘要:jQuery的一个不错的小插件,记性越来越差了,整理一下贴在这里,方便以后Copy & Paste<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http...
阅读全文
摘要:当页面中包含自动播放视频的flash播放器时,flash的流媒体播放会一直不停的下载视频(哪怕你点击了播放暂停/停止也一样在不停下载),这样会影响到页面其它元素的加载。最简单的优化办法就是让Flash一开始不要播放:当然,你可以修改fla源文件,让视频播放一开始就处于暂停,直到用户点击了播放按钮。但问题是,如果您嵌入的是没有源文件的flash动画,这种路子就走不通了。思路:可以先在放置flash的...
阅读全文
摘要:jQuery确实是一个提高前端开发效率的好框架(虽然很多大牛们都说它效率不咋地),但是用好它有时候并不容易,也许你也遇到过以下情况:一个aspx页面通常可以包含其它ascx控件,如果在多人协同开发的情况下:程序员小张在控件A.ascx中使用了 $().ready(function{}),而程序员小王又在控件B.ascx中也使用了ready函数,程序员小李在做页面时,把A.ascx,B.ascx都拖...
阅读全文
只有注册用户登录后才能阅读该文。
摘要:在页面很长(超过3屏)且图片又很多时,默认情况下浏览器会加载所有图片,有可能导致第二屏的图片显示出来了,但第一屏的图片还在加载,这种情况最适合用"javascript延时加载"来改善用户体验.原理:1.根据图片元素距页面顶部的距离,判断图片自身在第几屏2.所有图片元素的src值先不设置,改而用其它自定义属性,比如src写成lazy_src(这样浏览器就不会主动加载图片)3.根据1的判断,如果轮到自...
阅读全文
摘要:虽然从司徒先生的博客上看到 全世界最短的IE判定很长时间了,却一直对于原理没怎么去细看,今天同事(也是一后台程序员,并非前端)又问到这个问题,于是我这个前端外行认真研究了下,基本弄懂了,贴在这里备份,高手就绕过吧,以免浪费时间注:随着时间的推移,IE9及以上版本已经修复了该BUG(除非设置成兼容模式...
阅读全文
摘要:AspNetPager一直是我最喜欢用的分页控件(而且作者最近还推出了专门针对MVC的版本http://mvcpager.codeplex.com/),默认情况下运行后的样子类似下图我个人觉得其实也挺好看,但昨天遇到一客户的网站背景是黑色的,觉得红色的当前页码不好看,要求换成对比度比较高的“绿色”,一时之间也懒得去一一尝试AspNetPager的各种属性了,观察一下页面最终...
阅读全文
摘要:很多人(包括我)都喜欢把主流的javascript框架(比如jQuery),放到自己服务器上,其实还有更好的选择。http://code.google.com/intl/zh-CN/apis/ajaxlibs/documentation/index.html#googleDotLoad 是google对外开放的AJAX库 API,上面已经有很多ajax库了,我们只需要引用即可(好处在于:googl...
阅读全文