用闭包制作简单动画效果

刚才用书上看来的写了一下,貌似还蛮好玩的
http://shawphy.com/demo/closure/animate.html
大家看那个小红方框
ie6请点上面链接查看效果,或者弹开后刷新一下看效果

function tipUpdown(obj){
var objorg=obj.css(“top”).replace(/px/,””)-0;
for(var i=0;i<10;i++){ (function(){ var b=i; setTimeout(function(){ obj.css({"top":b*1+objorg+"px"}) },b*20); setTimeout(function(){ obj.css({"top&":b*1+objorg+"px"}) },400-b*20); })(); }; }; setInterval("tipUpdown($('#ab'))",1000)

jQuery UI 1.5 正式版发布

原文:
http://jquery.com/blog/2008/06/09/jquery-ui-v15-released-focus-on-consistent-api-and-effects/
实在太长,懒得翻译了……

总体来说,蛮好用的看上去。官方的文档还没有完全跟上,只有老的一些了。
等下回官网的文档好了,我也一并更新下吧。

主要是统一了API

* $(”div”).draggable() creates a draggable
* $(”div”).draggable(”destroy”) destroys it
* $(”div”).draggable(”method”) calls another method on the plugin.

修正了N多的BUG

增加了http://script.aculo.us/这里很多特效

http://ui.jquery.com/themeroller
这里可以做自己的主题

http://ui.jquery.com/download
这里可以下载到最新版

http://docs.jquery.com/UI
这里是文档

记得datepicker吧,里边的简体中文部分是cloudream翻译的~

jQuery 1.2.6 发布信息

姗姗来迟的1.2.6的发布信息,其实本来是1.2.4的,结果扯出点小事来。
这回jq文件97.8K,直逼100K大关啦。估计下个版本就破了。
其实pack版破30也是很早以前的事情了
好了,多的不说了

主要是性能更新,
可以看这里:
http://spreadsheets.google.com/pub?key=pFIHldY_CksyThxfgx6krfA

没有IE6,被无视咯~

事件处理快了103% ——快了很多啊

CSS选择器快了13%——非常好,这个最重要了,越快越好。不过受限于正则的速度。。。是由于jQuery.map() 提升866% 还有 jQuery.extend() 19% 提升速度,所以导致整个都快了

.offset() 21%

.css() 25%

然后是新特性
Dimensions插件彻底融入jquery内核。这个上次已经说过了。

.attr()重写了,解决了15项bug

.toggle() 能接受更多函数了
比如:
$("div").toggle(function(){
$(this).removeClass("three").addClass("one");
}, function(){
$(this).removeClass("one").addClass("two");
}, function(){
$(this).removeClass("two").addClass("three");
});

.index() 支持jQuery集合了
var test = $("div.test");
$("div").index( test ) == 3

jQuery.makeArray可以把任何东西弄成数组了
jQuery.makeArray( document.getElementsByTagName("div") )
// => [ div, div, div ]

jQuery.makeArray( true )
// => [ true ]

jQuery.makeArray()
// => []

beforeSend 能取消Ajax调用了
$.ajax({
beforeSend: function(){
return $("#input").val() == "";
},
url: "test.php"
});

从上面代码上看,就是在beforeSend里,return true,就是取消请求。跟一般的return false不太一样。

动画的速度可以自己设置fast slow normal的值了。
jQuery.fx.speeds.slow = 1000;
$("#test").slideDown("slow");

总体来说,更新就这些了。

jQuery 1.2.6的更新内容,以及文档5.29日重要更新

文档又更新了
但愿大家别烦,饶恕我这几天忙没办法一次性更新。只能更新点放出点。

2008-05-29 16:36:07 +0800
+ 核心 部分 数据缓存
+ 工具inArray函数
* noConflict注释

另外看到1.2.6中有上一版1.2.3里没有的几个函数,官网文档还没跟上,我就自己随手写点。不放进中文文档了。

感谢Cloudream 提醒~~失误了,这个就是Dimensions插件里的,1.2.3里只提供了offset,再加上早先的height,width,到现在已经完全把这个插件加进来了。
Dimensions插件已然融入jquery了:

offsetParent
用于检测对应元素实际的相对偏移的父对象
返回值:jQuery
示例:
<div id=”p” style=”position:relative”>
<div>
<div id=”c” style=”position:absolute;left:30px”>dd</div>
</div>
</div>
$(“#c”).offsetParent()[0].id    // p

position
用于检测实际的相对偏移,相对于上面那个函数所取得的对象。
返回值{top:xxx,left:xxx}
示例:
$(“#c”).position().left //30

scrollTop,scrollLeft
用于元素内部的滚动条,比如一个textarea,可以用来滚动
JQ传统咯,即可以设置也获取值

innerHeight, innerWidth
用来获取元素实际内部大小
innerHeight=height+paddingTop+paddingBottom

outerHeight,outerWidth
用于获取元素实际外部大小。

如果使用outerHeight()则返回值为
height+borderTop+borderBottom

如果使用outerHeight(true),则返回值为
height+borderTop+borderBottom+marginTop+marginBottom

好了,基本就这些了。暂时感觉没啥用处,实际项目的时候可以把这些删除掉,然后再用packer打包。

jQuery 中文文档AJAX部分再度更新

发现官网更新了,我这也更新一下。
之前下过离线版的可以再下载一下。
更新了AJAX部分
修正了scroll的示例代码

在线查看地址:http://shawphy.com/jqueryapi/
离线版下载:http://shawphy.com/jqueryapi/jqueryapi12.zip

有空的朋友可以一起来SVN维护
svn checkout http://jquery-api-zh-cn.googlecode.com/svn/trunk/ jquery-api-zh-cn-read-only

jQuery 1.2.6 发布

这回紧急修正了2个BUG的
主要是内核上的val的问题,用val设置 select的时候有时候会出问题。
一个是attr问题,导致了Validate插件的崩溃

有条件么,升级一下吧。

http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.pack.js
http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.js

jQuery 1.2.5 发布

前几天发布了1.2.4,结果没过一天就发布了1.2.5
而实际访问SVN会发现两个版本之间,jQuery主体丝毫没有什么变化过。
我就纳闷了。jQuery搞什么飞机啊……

http://docs.jquery.com/Release:jQuery_1.2.5
发布信息里只有一条:jQuery 1.2.5 was available only one day after 1.2.4

囧……

然后就引导我们看1.2.4的发布记录:
http://docs.jquery.com/Release:jQuery_1.2.4

可以找到如下网址:
http://www.nabble.com/1.2.4-missing-patches–td17354452s27240.html

里边提到,看来是john的电脑貌似有点冲突,所以make坏了。做了一个bad build。
缺了http://dev.jquery.com/ticket/2567这个补丁。
而现在他正在外面游山玩水~~~大概12天后回来

好了,那就用1.2.5吧。修正了众多Bug
下载地址:
Minified, Packed, Uncompressed

用jQuery 选择器选取包含特殊字符的元素

当使用jQuery选择器的时候,如果id里包含#:[]之类的特殊的符号,或者xml里有如这样的,一般情况下是无法选到的。
这个时候可以使用一些技巧来选择相关的内容。
使用转义字符,并且使用两个即可
比如要选择id为a:1的元素
可以写成$("#a\:1")。
当然也可以写作$("[id=a:1]")。
当然,效率哪个高大家都知道~
而且,如果要处理XML的话就没这么容易了。

这种,只需要$("adb\:aaa")即可

具体实现原理么,不是很明白。以前wzmaodong写表单验证的时候也出现过类似的问题。所以这回才想起来的。

他的解释是“采用的是显式构造函数new RegExp("pattern"[,"flags"]); 由于Javascript 中'' 被用作转义字符,所以在使用显示构造函数构造实例对象的时候,需要使用'\' 代替''”

但是我就纳闷了,我一个选择器难道jQuery内部也做正则去了么?明明是被正则解析啊。迷茫了。

[html]

fail

[/html]

精通JavaScript读书感想

这本书英文名是Pro JavaScript Techniques。是jQuery之父John Resig所写的。
书中的内容确实比较高级些,并非如犀牛书般的只是基础而已。
这本书看下来的感觉就是:果然是JQ之父写的!
为什么这样说呢,因为这本书可以说是JQ的源码解读。这里的很多篇幅都可以看做JQ的一些方法的原型实现。
包括选择器,attr,insert,append,remove等,还有event注册等方法。
如果你想要体会JQ是如何炼成的,看这本书是最好不过的了,对于你对JS的理解会上一个层次,了解JQ编写的原理,体会到大师的想法。
当然看了这个之后自然就看到了大师的师傅,Dean Edwards,这个牛人就是著名的JS压缩利器parker的作者。他写的cssQuery可以说是jQuery的最初的想法。但我们的John Resig很快发现光是选择器,比不过cssQuery,但是封装更丰富的操作那是很好很美妙的事情。

同时,这本书也介绍了一些未来的javascript 1.6/1.7.
这些已经在Firefox中完全实现了(1.6在FF1.5以上,1.7在FF2以上,1.8在FF3以上)。有兴趣的可以参考这里。这里不光有1.6.1.7,还有1.8的参考。(部分英文)
另外,
期待着下面的语句

var a=

最后,为地震灾区所有人民祈福……