0

我使用的是Alexander Farkas的一个插件,它可以很好地背景背景。jquery backgroundPosition插件

它甚至在IE9工作正常,但在IE8和IE7给了我这个错误:“SCRIPT5007:无法获得属性的值‘取代’:对象为null或undefined”

不知怎的,在IE8中,他不能转换给函数的值(通过值我的意思是像素)...

有人可以看看吗?我没有要发布的孔JS,但你可以点击此处查看:提前

http://factorystore.hu/test/

感谢

回答

0

确保不会有后面的逗号的IE不喜欢尾随逗号阵列/对象。

检查这两行

start = toArray(start); 
var end = toArray(fx.end); 

更新解决方案

粘贴此代码

if(!document.defaultView || !document.defaultView.getComputedStyle){ // IE6-IE8 
     var oldCurCSS = jQuery.curCSS; 
     jQuery.curCSS = function(elem, name, force){ 
      if(name === 'background-position'){ 
       name = 'backgroundPosition'; 
      } 
      if(name !== 'backgroundPosition' || !elem.currentStyle || elem.currentStyle[ name ]){ 
       return oldCurCSS.apply(this, arguments); 
      } 
      var style = elem.style; 
      if (!force && style && style[ name ]){ 
       return style[ name ]; 
      } 
      return oldCurCSS(elem, 'backgroundPositionX', force) +' '+ oldCurCSS(elem, 'backgroundPositionY', force); 
     }; 
    } 

这条线之上

$.extend($.fx.step,{ 
+0

但应该如何我在这种情况下做到这一点? –

+0

我已经更新了我的代码,请检查这两行,并尝试获取开始和结束的值,例如: – rahul

+0

yes问题存在,例如开始值为[0,“px”,0,“px”]和[0,“px”,-520,“px”],甚至IE9给我这些值,但IE8回馈我在开头提到的错误。所以不知怎么,他不能很好地与替换和匹配..至少所以我认为 –