.removeAttr('style')似乎在ipad上没有像预期的那样工作

时间:2013-09-19 13:05:57

标签: javascript jquery ios css ipad

如果您使用.removeAttr('style')

,有谁知道为什么CSS不会在ipad上更新?

这是一个快速示例,展示我如何实现我的精灵切换:

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上删除/更新不同的按钮。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

好像.removeAttr('style');在ipad上有一些问题(问题所有ios设备)

正如A. Wolff和ᾠῗᵲᾠῗᵲpointed指出的那样,这些替代方案运作良好:

.attr('style','');
.css('backgroundPosition','');

答案 1 :(得分:0)

希望这会有所帮助:

尝试这样的事情:

//replace the $.each(...) block with following
$('nav li a').each(function(){
    $(this).css('name','value'); //here you manually adjust your css styles
});
祝你的项目好运!