0

有谁知道为什么如果你使用 CSS 不会在 ipad 上更新.removeAttr('style')

下面是一个简单的例子来展示我是如何实现精灵切换的:

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 上被删除/更新。

有任何想法吗?

4

2 回答 2

2

似乎.removeAttr('style');ipad 上有一些问题(可能所有 ios 设备)

正如 A. Wolff 和 ᾠῗᵲᄐᶌ 所指出的,这些替代方案可以正常工作:

.attr('style','');
.css('backgroundPosition','');
于 2013-09-19T13:46:03.500 回答
0

希望这可以帮助:

尝试这样的事情:

//replace the $.each(...) block with following
$('nav li a').each(function(){
    $(this).css('name','value'); //here you manually adjust your css styles
});

祝你项目好运!

于 2013-09-19T13:13:38.097 回答