Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery document.ready事件在我的元素css样式加载到IE8之前激发_Jquery_Css_Cross Browser - Fatal编程技术网

Jquery document.ready事件在我的元素css样式加载到IE8之前激发

Jquery document.ready事件在我的元素css样式加载到IE8之前激发,jquery,css,cross-browser,Jquery,Css,Cross Browser,我有以下代码在五月页 var x = parseInt($(this).css('backgroundPosition').split(" ")[0]); 在IE9、FF和Chrome中,一切都很好,即使是Iphone,但IE8和IE7抛出了一个错误,我调试的问题是.css方法无法解析该属性 我在页面底部使用的document.ready函数似乎在css应用于元素之前加载了这段代码,在本文中,这是一个td table元素 有没有关于如何优雅地解决这个问题的想法 谢谢你把实际问题放在一边,我建议

我有以下代码在五月页

var x = parseInt($(this).css('backgroundPosition').split(" ")[0]);
在IE9、FF和Chrome中,一切都很好,即使是Iphone,但IE8和IE7抛出了一个错误,我调试的问题是.css方法无法解析该属性

我在页面底部使用的document.ready函数似乎在css应用于元素之前加载了这段代码,在本文中,这是一个td table元素

有没有关于如何优雅地解决这个问题的想法


谢谢你

把实际问题放在一边,我建议你先做一个
null
检查,这样它就不会破坏浏览器中产生问题的其他javascript执行流

var bPos = $(this).css('backgroundPosition');
var x;
if(bPos){
    bPos = bPos.split(" ");
    if(bPos.length){
       x = parseInt(bPos[0]);
    }
}

我确实使用jQuery在
backgroundPosition
(和
backgroundPosition
)属性上获得了
undefined

如果您分别引用以下各项,看起来确实可以在IE中访问
背景位置中的X和Y:

<html>
<head>
<style type="text/css">
body {
    background: url(http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG);
    background-repeat: no-repeat;
    background-position: 100px 500px;
}
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.js"></script>
<script type="text/javascript">
</script>
</head>
<body>
<p>Test of doc.ready and bg pos in IE8/9</p>
<script>
$(document).ready(function(){
    if ($.browser.msie) {
        console.log('X: ' + $('body').css('backgroundPositionX'));
        console.log('Y: ' + $('body').css('backgroundPositionY'));
    } else {
        console.log('X: ' + parseInt($('body').css('backgroundPosition').split(" ")[0]));
        console.log('Y: ' + parseInt($('body').css('backgroundPosition').split(" ")[1]));
    }
});
</script>
</body>
</html>

然而,它看起来确实不适用于Firefox(不输出任何内容)。所以我调整了代码来检测IE

LOG: X: 100px 
LOG: Y: 500px