我正在使用在网上找到的以下JS来实现响应式导航。IE8中没有任何错误的消息源,但是我正在BrowserStack(Win7 + IE8)中进行一些兼容性测试,并得到“对象不支持此属性或方法”错误。这是整个脚本:
<script>
$(function() {
var pull = $('#menu');
menu = $('nav ul');
menuHeight = menu.height();
$(pull).on('click', function(e) {
e.preventDefault();
menu.slideToggle();
});
});
$(window).resize(function(){
var w = $(window).width();
if(w > 320 && menu.is(':hidden')) {
menu.removeAttr('style');
}
});
</script>
这是IE8不喜欢的行(特别是字符6):
if(w > 320 && menu.is(':hidden')) {
解决这个问题的任何帮助都会很棒,但我仍然不是JS的最佳人选。
只需停止将jQuery对象存储在全局变量中即可。只需按需创建它们就不会花费太多,而且您不会遇到这个生命周期/范围界定问题:
<script>
$(function() {
$('#menu').on('click', function(e) {
e.preventDefault();
$('nav ul').slideToggle();
});
});
$(window).resize(function(){
var menu = $('nav ul');
if($(window).width() > 320 && menu.is(':hidden')) {
menu.removeAttr('style');
}
});
</script>
一些适用于此的一般设计/代码布局思想:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句