【发布时间】:2014-06-05 20:25:02
【问题描述】:
我正在使用我在网上找到的以下 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。
【问题讨论】:
-
.resize()是一个独立的事件,可以在.ready()之前,menu定义之前发生。为避免竞争条件,您可以在.ready()处理程序中绑定.resize()事件。 -
啊,是的。将该函数移到 document.ready 中。
-
这基本上只有效,因为您忘记用逗号分隔变量并使其成为全局变量!
-
所以我需要将变量拉到第一个 $(function ? 之外
-
不是真的,你需要让它们不全局
标签: javascript jquery internet-explorer-8