【发布时间】:2013-09-24 14:00:03
【问题描述】:
如果你使用.removeAttr('style'),谁知道为什么 ipad 上的 CSS 不更新?
这里有一个简单的例子来展示我是如何实现精灵切换的:
CSS
nav li a { background: url('../img/sprites.gif'); }
nav li a#pizza { background-position: -40px -42px; }
nav li a#beer { background-position: -40px -82px; }
nav li a#spagetti { background-position: -40px -122px; }
Javascript
var $arr_nav_elements = $('nav li a');
$('nav li a').on('click', function(event) {
//works fine on all modern browsers except ipad!
$arr_nav_elements.removeAttr('style');
var $arr_bg_pos = $(this).css('backgroundPosition').split(" ");
//create "active" state on the current button
$(this).css('backgroundPosition', '0 '+$arr_bg_pos[1]);
}
在上面的示例中,我的按钮将在我的 sprites.gif 中第一次单击时变为“活动”状态,但是在我单击任何内容后,jQuery 的 css() 应用的内联样式不会在 ipad 上被删除/更新不同的按钮。
有什么想法吗?
【问题讨论】:
-
为什么在这里使用 each 循环?可能是:
$arr_nav_elements.removeAttr('style');或$arr_nav_elements.attr('style','') -
您确定它适用于所有浏览器吗?
ele.removeAttr('style');不应该工作,因为ele只是一个原生 DOM 元素并且没有方法 removeAttr -
对不起,这个例子是我自己写的。 A.Wolff:是的,谢谢!删除了 each() - 现在应该是正确的。 :)
-
抱歉,不要更改有问题的代码,而是尝试对其进行测试。也许现在它可以工作了,顺便说一句,我们不再知道你正在使用哪个代码......所以你能发布你正在使用的确切代码,哪些不工作???
标签: javascript jquery ios css ipad