问题:
Font-Awesome字体在ie7上不能toggle,原因是Font-Awesome在ie7上使用expression完成显示的。目前网上有很多遇到的但没找到解决方案。
解决方案:
比较蠢,采用clone/append完成class的toggle。目前只想到这种方案。欢迎更完美的解决方案。
html
<a class="btn btn-link icon-plus-sign"></a>
js
$(function() { $(".btn").click(function() { $(".btn").each(function() { //如果是ie7 if(/MSIE 7.0/ig.test(navigator.appVersion)) { var $aClone = $(this).clone(true); if($aClone.hasClass("icon-minus-sign")) { $aClone.addClass("icon-plus-sign").removeClass("icon-minus-sign"); } else { $aClone.addClass("icon-minus-sign").removeClass("icon-plus-sign"); } $(this).after($aClone); $(this).remove(); } else { $a.toggleClass(openIcon); $a.toggleClass(closeIcon); } }); return false; }); });
最后必须return false; 否则会造成ie7浏览器crash掉。