jQuery 1.3 新特性

细节改动

  • 新增了一个jQuery.Event对象,他根据w3c文档,做了一个完整的,兼容所有浏览器的一个对象。
  • .closest( selector ) - 找到离这个元素最近的一个父元素。 
  • jQuery.fx.off 关闭所有动画 
  • 新增jQuery.isArray  
  • toggleClass(class[,switch]) 增加switch是否值,如果switch为真则加上该class否则为替换为该class

 

属性

[attribute!=value]这个属性选择器在jQuery 1.3之前是这样的:”匹配那些没有指定的属性的元素,或者指定的属性不等于特定值的元素。”,
这等价于:not([attr=value])。
 
而在jQuery 1.3中是这样的:匹配所有含有指定的属性,但属性不等于特定值的元素。

 

jQuery.support

以下3个方法属性已被不推荐使用。
* jQuery.browser
* jQuery.browser.version
* jQuery.boxModel
全面改用jQuery.support
  • boxModel: 如果这个页面和浏览器是以W3C CSS盒式模型来渲染的,则等于true。通常在IE 6和IE 7的怪癖模式中这个值是false。在document准备就绪前,这个值是null。
  • cssFloat: 如果用cssFloat来访问CSS的float的值,则返回true。目前在IE中会返回false,他用styleFloat代替。
  • hrefNormalized: 如果浏览器从getAttribute("href")返回的是原封不动的结果,则返回true。在IE中会返回false,因为他的URLs已经常规化了。
  • htmlSerialize: 如果浏览器通过innerHTML插入链接元素的时候会序列化这些链接,则返回true,目前IE中返回false。
  • leadingWhitespace: 如果在使用innerHTML的时候浏览器会保持前导空白字符,则返回true,目前在IE 6-8中返回false。
  • noCloneEvent: 如果浏览器在克隆元素的时候不会连同事件处理函数一起复制,则返回true,目前在IE中返回false。
  • objectAll: 如果在某个元素对象上执行getElementsByTagName("*")会返回所有子孙元素,则为true,目前在IE 7中为false。
  • opacity: 如果浏览器能适当解释透明度样式属性,则返回true,目前在IE中返回false,因为他用alpha滤镜代替。
  • scriptEval: 使用 appendChild/createTextNode 方法插入脚本代码时,浏览器是否执行脚步,目前在IE中返回false,IE使用 .text 方法插入脚本代码以执行。
  • style: 如果getAttribute("style")返回元素的行内样式,则为true。目前IE中为false,因为他用cssText代替。
  • tbody: 如果浏览器允许table元素不包含tbody元素,则返回true。目前在IE中会返回false,他会自动插入缺失的tbody。

 

位置

offset()
获取匹配元素在当前视口的相对偏移。
返回的对象包含两个整形属性:top 和 left。

position()
获取匹配元素相对父元素的偏移。
返回的对象包含两个整形属性:top 和 left。
 
scrollLeft(v)
获取或设置匹配元素相对滚动条左侧的偏移。
 
scrollTop(v)
获取或设置匹配元素相对滚动条顶部的偏移。

 

大小

height(v)
取得或设置第一个匹配元素当前计算的高度值(px)。
 
width(v)
取得或设置第一个匹配元素当前计算的宽度值(px)。

innerHeight()
获取第一个匹配元素内部区域高度(包括补白、不包括边框)。

innerWidth()
获取第一个匹配元素内部区域宽度(包括补白、不包括边框)。

outerHeight(options)
获取第一个匹配元素外部高度(默认包括补白和边框)。
options(Boolean) : (false) 设置为 true 时,计算边距在内。

outerWidth(options)
获取第一个匹配元素外部宽度(默认包括补白和边框)。

 

live & die 事件

基本上就是吸收了原来的livejQuery插件进core
 
HTML
        <tr>
            
<td>这行原来就有</td>
            
<td><button class="del">删除</button></td>
        
</tr>
 
  1. jQuery(function($) {
  2.     //已有删除按钮初始化绑定删除事件
  3.     $(".del").click(function() {
  4.         $(this).parents("tr").remove();
  5.     });
  6. });
对于原来的按扭,OK
对于JS动态产生的,没效果
 
重复绑定事件(我采用的方法)
  1. jQuery(function($) {
  2.     //定义删除按钮事件绑定
  3.     //写里边,防止污染全局命名空间
  4.     function deltr() {
  5.         $(this).parents("tr").remove();
  6.     };
  7.     //已有删除按钮初始化绑定删除事件
  8.     $("#table3 .del").click(deltr);
  9.     //添加行
  10.     $("#add3").click(function(){
  11.         $('<tr><td>新增行</td><td><button class="del">删除</button></td></tr>')
  12.             //在这里给删除按钮再次绑定事件。
  13.             .find(".del").click(deltr).end()
  14.             .appendTo($("#table3>tbody"));
  15.     });
  16. });
live 新方法
  1. jQuery(function($) {
  2.     //已有删除按钮初始化绑定删除事件
  3.     $(".del").live("click",function() {
  4.         $(this).parents("tr").remove();
  5.     });
  6. });
 
die live反作用函数
 
live不是万能的
live其实就是给document绑定了事件处理函数,这样所有新增的元素的事件都能够冒泡到document上,实现了事件的动态委派的过程。
e.stopPropagation,就是这个方法会失效。
幸运的是,e.preventDefault依然可以使用。

posted @ 2009-06-03 19:53  _拖鞋_  阅读(316)  评论(0编辑  收藏  举报