今天在用jquery的width()和height()方法获取img元素的宽和高时,在火狐浏览器下能够获取到值,在谷歌浏览器下获取到的值却为0,我想了半天,搞不懂这两个常用的方法怎么还会不兼容谷歌呢。纳闷之下,我就想是不是因为img元素是内联元素的原因。


于是我给img元素转化为了内联块元素,并给了宽和高的值,于是在谷歌浏览器下管用了。


所以总结:jquery的height(),width()方法要是用在内联元素上,且内联元素没有设定为内联块或者块元素,同时没有设置高和宽的值得话,在谷歌浏览器下可能不起效果。


例如:

//滑过brand图片出现放大镜的效果
    $(".jnBrandList ul li").each(function(index){
        var $img = $(this).find("img");
        var img_w = $img.width();
        var img_h = $img.height();
        var spanHtml = '<span style="position:absolute;top:0;left:5px;width:'+img_w+'px;height:'+img_h+'px;" class="p_w_picpathMask"></span>';
        $(spanHtml).appendTo(this);
    })
    /*$(".jnBrandList").delegate(".p_w_picpathMask", "hover", function(){
        $(this).toggleClass("p_w_picpathOver");
    });*/
    $(".jnBrandList").find(".p_w_picpathMask").live("hover", function(){
        $(this).toggleClass("p_w_picpathOver");
    });