在 IE8 中加载我的元素 css 样式之前,Jquery document.ready 事件触发
我在 5 月页面中有以下代码,
var x = parseInt($(this).css('backgroundPosition').split(" ")[0]);
在 IE9、FF 和 Chrome 中一切正常,甚至在 Iphone 中也能正常工作,但 IE8 和 IE7 会抛出错误,我调试问题是 .css 方法无法解析该属性。
看起来我在页面底部使用的 document.ready 函数在将 css 应用于元素之前加载此代码,在这种情况下,这是一个 td 表元素
关于如何优雅地解决此问题的任何想法
谢谢
I have the following code in may page
var x = parseInt($(this).css('backgroundPosition').split(" ")[0]);
Everything works fine in IE9 and FF and Chrome, even Iphone but IE8 and IE7 throws an error, I debugged the issue to be that the .css method can't resolve the property.
It seems like the document.ready function I use at the bottom of the page loads this code before the css is applied to the element, in this context the this is a td table element
Any ideas on how to elegantly fix this issue
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我确实使用 jQuery 在
backgroundPosition
(和background-position
)属性上得到了undefined
。如果您单独引用每个,看起来您确实可以在 IE 中访问
background-position
中的 X 和 Y:在 IE7/8 中(使用 IE9 控制台):
http://jfcoder.com/test/bgpos.html
但是,它看起来确实在 Firefox 中不起作用(不输出任何东西)。所以我调整了代码来检测IE。
I do get
undefined
on thebackgroundPosition
(andbackground-position
) property using jQuery.It does look like you can access the X and Y in
background-position
in IE if you refer to each individually:In IE7/8 (using IE9 console):
http://jfcoder.com/test/bgpos.html
However, it does look like it doesn't work in Firefox (doesn't output anything). So I adjusted the code to detect IE.
抛开实际问题不谈,我建议您首先进行
null
检查,这样就不会破坏产生问题的浏览器中的其他 JavaScript 执行流程。Keeping the actual issue aside I would suggest you to do a
null
check first so that it will not break other javascript execution flow in the browsers where it is creating the problem.