Archive for the ‘JavaScript’ Category

jQuery 1.3 正式版发布公告

星期四, 一月 15th, 2009 3,532 views

http://docs.jquery.com/Release:jQuery_1.3 jQuery 1.3终于发布了。 min版(gzip后18kb) 源码(114kb) 另外可以用google的代码托管: http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js 下面这个是我自己用Packer压缩的pack版 http://shawphy.com/down/jquery-1.3.pack.js(37kb) 简要来说: 更新了Sizzle选择器引擎,这个之前也提到过。可以查看他的性能: 此外据声称,把代码给了dojo基金会。这回Sizzle的野心在于能够让其他各种JS库都能用,包括Prototype, Dojo, Yahoo UI, MochiKit, 和 TinyMCE等等其他库。 live 事件 这也是jQuery 1.3这次更新的第二个重大更新。 可以看下面iframe中的效果以及源码 性能比较: 这样,我以前写的关于重复绑定的文章就差不多可以抛弃了 Event 对象 新增了一个jQuery.Event对象,他根据w3c文档,做了一个完整的,兼容所有浏览器的一个对象。具体还得看文档。 append, prepend, before, 和 after 方法重写 据声称,这些方法的效率提升了6倍 重写了offset方法 这回更快了 取消了浏览器侦测,全面改用jQuery.support 具体还得看文档了。 变化: 其中与开发者比较密切的是 [@attr] 中的@在1.3里不能用了 用trigger触发的事件现在能冒泡了 ready方法中,再也不等css加载完了再执行其中代码了。直接要求把css放在脚本之前就行 简化了.isFunction方法,那些偏门的就被无视了 用选择器a, b, c选择东西,在支持querySelectorAll (Safari, Firefox 3.1+, Opera 10+, IE 8+)中会按照这些元素在文档中顺序来确定这些数组在获得的对象列表中的位置。而不支持这个方法的浏览器则按照选择器顺序排好 新增了jQuery.Event 要求网页都在标准模式下,不要在怪异模式下使用,否则会报错。 以下3个方法属性已被不推荐使用。 * jQuery.browser * jQuery.browser.version * jQuery.boxModel 具体内容: 内核部分: 更好的queue, dequeue 新增selector, context这两个属性,分别指向获取这个元素的原始选择器和被查找的内容(可选) 选择器部分: Sizzle的使用 复杂的css例如not(a, b) 属性部分: toggleClass( "className", ...

FireUnit:基于Firebug的JavaScript单元测试扩展

星期四, 十二月 18th, 2008 1,665 views

John Resig最近在他的博客中发表文章John Resig - FireUnit: JavaScript Unit Testing Extension.发布了他与Jan Odvarko合作开发的一款基于Firebug的扩展FireUnit。(Firebug真是越来越强大了……) 简单说来,FireUnit给Firebug增加了一个标签面板,并提供了一些简单的JavaScript API来记录和查看测试。 举例来说: // Simple true-like/false-like testing fireunit.ok( true, "I'm going to pass!" ); fireunit.ok( false, "I'm going to fail!" ); // Compare two strings - shows a diff of the // results if they're different fireunit.compare( "The lazy fox jumped over the log.", ...

页面加载完成后新建的元素事件绑定问题(下)

星期四, 七月 24th, 2008 3,037 views

页面加载完成后新建的元素事件绑定问题(上) ============================= 2号解决方案——事件冒泡法 利用事件冒泡的原理,我们给这个按钮的祖先元素绑定事件处理函数。 然后通过event.target这个对象来判断,这个事件是不是我们要找的对象触发的。 通常可以利用一些DOM属性,比如event.target.className、event.target.tagName等之类的来判断。 删除 jQuery(function($) { //第四个表格的删除按钮事件绑定 $("#table4").click(function(e) { if (e.target.className=="del") { $(e.target).parents("tr").remove(); }; }); //第四个表格的添加按钮事件绑定 ...

页面加载完成后新建的元素事件绑定问题(上)

星期四, 七月 24th, 2008 3,709 views

本文demo:http://shawphy.com/demo/event/event.html 很多人会像我一样遇到这样一个问题: 在页面加载完成后给元素绑定了事件,但又新增加的元素上却没有绑定任何事件。 js的事件监听跟css不一样,css只要设定好了样式,不论是原来就有的还是新添加的,都有一样的表现。而事件监听不是,你必须给每一个元素单独绑定事件。 常见的例子是处理表格的时候。每行行末有个删除按钮,点了这个能够删除这一行。 这行原来就有 删除 ...

JavaScript switch case 语句设置范围

星期二, 七月 8th, 2008 2,510 views

不知是否出于什么缘故,我google搜索 javascript switch case 范围 这几个关键字,出来的前几条都是csdn上关于无解的表示。 可能是其他编译型语言中,case后便必须是常量的缘故吧。 后来在一个边角的地方看到某人发帖是VB还是不知道哪个语言中的中实现了switch case语句的范围选择,大家看了下面代码就明白了。 var x=1 switch(true){ case x>0&&x=10&&x0&&x=10&&x

找出页面内重复的Id

星期天, 七月 6th, 2008 1,207 views

今天群里提起这事, 判断页面内是否有重复的id 一种是已知id,看是否有重复。基本上Ctrl+F就能搞定~ 但是Robin给出了方法: function chkid(idname){ s=0; divs = document.getElementsByTagName("*"); for (i=0; i