IE8中的jQuery CSS错误

IE8中的jQuery CSS错误,jquery,css,internet-explorer-8,Jquery,Css,Internet Explorer 8,我在IE8中有一个错误,当我试图从css中获取一个带有背景图像的元素的属性时 el.css({ 'background-position': "10px 10px"}); //set some alert(el.css("background-position")); //get the value 在Opera、FF、Chrome和Safari的作品中,我得到了“10px 10px”。不是在IE8中,我没有定义。 我打开了一个,但在那之前,你认为这将是一个很好的解决这个问题的方法。如何以其

我在IE8中有一个错误,当我试图从css中获取一个带有背景图像的元素的属性时

el.css({ 'background-position': "10px 10px"}); //set some 
alert(el.css("background-position")); //get the value
在Opera、FF、Chrome和Safari的作品中,我得到了“10px 10px”。不是在IE8中,我没有定义。
我打开了一个,但在那之前,你认为这将是一个很好的解决这个问题的方法。如何以其他方式获取该值?

如果您提醒后台属性,那么您也将获得位置。一个非常糟糕的解决方法,但我能想到的第一个

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

然后你只需要得到后面跟着“px”的数值,我从来没有尝试过,但我发现通过单独请求位置,你会得到一个结果,所以:

alert(el.css("background-position-y")); //get the y value
alert(el.css("background-position-x")); //get the x value
然后您可以将两者结合起来:)

应该会有所帮助

它链接到另一个有趣的地方

编辑第一个链接已断开,用于救援

为了以防万一archive.org打包了,下面是dextrose博客的内容

jQuery(至少在版本1.2.6之前)存在Internet问题 询问对象的背景位置时使用浏览器

$('h1:first').css('background-position');
在其他A级浏览器中,您会得到2个值(px或%) 分别表示对象的x位置和y位置 元素。在Internet Explorer(6和7)中,您将得到未定义的。问题 就是IE不知道背景位置是什么,它只知道2 其他调用:background-position-x和background-position-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();

最后,我将从以下方面分析它们:

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

从技术上讲,这应该是可行的,但事实并非如此,因为该属性是使用css函数设置的,没有添加到真正的css中,而是动态地插入样式属性中,以供后代使用:这是此问题的主要错误报告。在撰写本文时,它被设置为“补丁欢迎”,但没有修复。用户将必须测试跨浏览器的任何分组CSS属性,如此。这就是只使用链接快速编写答案的问题:如果链接过期,答案将变得有用。真的吗?因为链接腐烂,我对一个将近3年的问题投了否决票?我很抱歉,但是“复制粘贴链接”的答案真的让我很失望,而且我认为它表达了一种拙劣的努力。感谢您改进答案:)