在IE8的jQuery CSS错误(jQuery CSS bug in IE8)

2019-08-06 00:22发布

我在IE8中的错误试图从CSS属性与背景图像元素时。

el.css({ 'background-position': "10px 10px"}); //set some 
alert(el.css("background-position")); //get the value

在Opera,FF,铬,野生动物园的工作,我得到 “10px的10px的”。 不要在IE8在那里我得到了一个未定义。 我开了一个bug报告 ,但在那之前,你认为它会是一个很好的解决此问题。 我应该如何获得一些这种价值的另一种方式?

Answer 1:

这应该帮助。

它链接到jQuery的2462票 ,这也是有趣

编辑第一个链接死, Wayback机器救援。

而且,万一archive.org曾经包了,这里是葡萄糖博客文章的内容。

jQuery的(至少至1.2.6版本)问对象的背景位置时与Internet Explorer中的问题。

 $('h1:first').css('background-position'); 

在其它A级的浏览器,将得到的2个值(以像素或%)分别表示的x位置和元件的y位置。 在Internet Explorer(6,7),你得到了一个未定义。 问题是,IE不知道背景位置是什么,只知道其他2个呼叫:背景位置-x和背景的位置-Y。 下面是一段JavaScript代码片段来处理这个问题。

 (function($) { jQuery.fn.backgroundPosition = function() { var p = $(this).css('background-position'); if(typeof(p) === 'undefined') return $(this).css('background-position-x') + ' ' + $(this).css('background-position-y'); else return p; }; })(jQuery); 

现在,您可以使用此jQuery插件获取元素的背景位置:

 $('h1:first').backgroundPosition(); 


Answer 2:

我从来没有试过,但我发现,通过请求位置分别u得到一个结果,所以:

alert(el.css("background-position-y")); //get the y value
alert(el.css("background-position-x")); //get the x value

那么你可以将二者结合起来:)



Answer 3:

如果您提醒的背景属性,那么你也就会得到位置。 一个极坏的解决办法,但第一个我能想到的......

alert(el.css("background")); //url(some/url/to/image.jpg) no-repeat 10px 10px

然后你不得不干脆退出该后跟“PX”的数值



Answer 4:

我终于从解析它们:

alert(el.attr('style')); // this seems to work in all browsers


文章来源: jQuery CSS bug in IE8