浅析jQuery1.8的几个小变化

一,.width() 和 .height()方法

1.8增加了对css属性box-sizing的支持,需要注意与1.7.2的区别了。1.7.2及以前的版本无论是否定义box-sizing: border-box返回的都是盒模型中元素内容的宽度或高度,不包括padding和border。

1.8后则不同了,当设置了css属性box-sizing: box-border后,使用width()返回的数值有可能与css中设置的不同。如

复制代码 代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8"/>
        <style type="text/css">
            #container {
                box-sizing: border-box;
                -moz-box-sizing: border-box;
                width: 500px;
                padding: 5px;
                border: 5px solid gold;
            }
        </style>
        <script src="js/jquery-1.8.0.js"></script>
    </head>
    <body>
        <div id="container"></div>
        <script>
            var $el = $('#container')
            var w = $el.width();
            console.log(w)
        </script>
    </body>   
</html>

div[id=container]的box-sizing设置为border-box(Firefox14.1尚不支持border-box,使用-moz-border-box)。

除了设置width:500px外,还设置了padding和border分别为5px。各浏览器打印结果如下

IE6/7 : 500

IE8/9/10: 480

Safari5/6: 480

Chrome21/Firefox14: 480


IE6/7不支持box-sizing,输出的依然是500。但支持该熟悉的浏览器此时输出的结果则是480(刨去了盒模型的border和padding)。因此在1.8中需要注意使用box-sizing属性带来的width和height的结果变化。


二,.outerWidth 和 .outerHeight()方法

1.7.2及之前版本,outerWidth/outerHeight只作为getter。不传true时返回元素的宽度或高度(含padding和border),传true时(当然也可以传数字1)返回值加上margin。

1.8及后具有了setter功能,如果获取时想计算margin只能传true,不能传数字1等,因为传数字1等在jQuery内部将处理为设置元素宽高。且返回的不是数字而是jQuery对象(和jQuery其它setter一样)。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
本文实例讲述了JavaScript获取表单内所有元素值的方法。分享给大家供大家参考。具体如下: 下面的JS代码可以遍历指定表单中的所有元素,并输出元素的值 !DOCTYPE htmlhtmlbodyform id="frm1" action="form_action.aspx"First name: input type="text" name="fname" value="Donald"brLast name: input type="text" name="lname" value="Duck"bri

采用call方式实现js继承 - 2015-05-01 20:05:02

复制代码 代码如下: //采用call方式实现js继承 function A(color) { this.Acolor = color; this.AshowColor = function() { document.writeln("Acolor: " + this.Acolor); } } function B(color, name) { A.call(this, color); this.Bname = name; this.BshowName = function() { document.wr
先说一下今天遇到的问题 一个导出excel的处理,在按钮按下后需要传很大一个数据到后台,刚开始的做法如下: 复制代码 代码如下: var actionUrlSetData = "****Action!exportDatas.action"+ "?now=" + new Date().getTime(); window.location.href=#> 上面的data就是一个很长的字符串。 这样在火狐和谷歌浏览器都是没有问题的,但是在ie9(其他ie没试,应该同理)就不能正常导出 导致这个问题的原因是各种浏
在这里特此声明,代码是通过jquery完成。实列代码我亲自写的,完全可以实现,只要复制过去就可以用,但是必须导入jquery包。着个方法支持ie与火狐,绝对好使。我在做的时候在网上找了一些代码,基本全不支持火狐。好了,废话也说了不少了。开始代码演示。欢迎大家挑错,与技术指点,谢谢。 复制代码 代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t
购物车点击可以减少或者添加商品并自动计算价格: 购物车中可能有这样的功能,那就是点击按钮可以实现商品数量的减少或者增加,并且能够实时的计算出总的商品价格,下面就通过代码实例介绍一下如何实现此功能,当然下面的这个模拟实现的购物车难登大雅之堂,但是可以从中得到一些启发或者相关的知识点,代码如下: 复制代码 代码如下: !DOCTYPE html html head meta charset="utf-8" title脚本之家/title script type="text/javascript" src="m
1. 从Google Code加载jQuery Google Code上已经托管了多种JavaScript类库,从Google Code上加载jQuery比直接从你的服务器加载更有优势。它 节省了你服务器上的带宽 ,能够很快的从Google的内容分布网络(CDN)上加载JS类库。更重要的是,如果用户访问那些发布在Google Code上的站点后它会被 缓存下来。 这样做很有意义。有多少站点使用了没有被缓存的相同jQuery副本,而这些很容易做到,引入: script type="text/javascri
使用情形如下: 页面a.aspx中点击按钮弹出模拟层,在这个层中有一个输入文本框“监督人”处调用hintbox来产生即时查询功能。 直接调用产生了如下情形: 于是找到jquery.hintbox-1.3.js这个文件,发现其中出现这么一行: 复制代码 代码如下: $("#windown-content").ajaxStart(function(){ $(this).html("img src='"+templateSrc+"/images/loading.gif' class='loading' /");
今天在搞JS(javascript)获取客户端IP的小程序,上网搜了下,好多在现在的系统和浏览器中的都无效,很无奈,在Chrome、FireFox中很少搞到直接利用ActiveX获取IP等的JS脚本。下面的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码: 一、使用JS获取客户端IP的几个方法 方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000)。 获取客户端IP代码: 复制代码 代码如下: HTML HEAD TITLEGetL

javascript event 事件解析 - 2015-05-01 14:05:29

event对象只在事件发生的过程中才有效。 event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。 例子 下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。 HTML HEADTITLECancels Links/TITLE SCRIPT LANGUAGE="JScript" function cancelLink() { if (window.event.sr
抄些常用工具方便查找 ----------字符串 Ext.util.Format.capitalize(string str);//将首字母变大写 Ext.util.Format.ellipsis(string value, Number length);//截取指定length字符,将自动在尾处添加省略号'...' Ext.util.Format.htmlEncode(string value); //将文本编码 lowercase(string value);//变小写 stripScripts(Mix