适用于chrome但不适用于firefox - jquery

时间:2011-05-09 19:02:05

标签: jquery firefox google-chrome cross-browser

 $('#carat_weight_right li').css('left', function(index, value) {
   if (value === '100%') {

        $(this).children('span').css({'margin-left': '-58px', 'text-align': 'right'});
        alert('hello');

    }
 });

似乎在chrome中工作但不是firefox任何人都有线索????

感谢

1 个答案:

答案 0 :(得分:4)

这是一个跨浏览器实现差异的有趣案例。

Firefox正在返回元素used value的{​​{1}}。这最终是用于在浏览器中呈现元素的像素的实际值:Firefox看到100%,在您的布局中确定真正等同于326像素,并返回326像素。 Mozilla talks about their implementation here.

另一方面,

Chrome会为computed style返回specified value(“100%”)。

W3C表示两者都有效:returning the specified value is fine如果可以在不需要布置文档的情况下完成; returning the used value is OK如果该值只能在布局完成后确定。

那你该怎么办?找到一种不同的制作方法。 :-)也许检查一下你的元素的computed style是否大于或等于其偏移的父级position().left