Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery中定义和使用全局变量并组合函数_Javascript_Jquery_Html_Css_Responsive Design - Fatal编程技术网

Javascript 在jquery中定义和使用全局变量并组合函数

Javascript 在jquery中定义和使用全局变量并组合函数,javascript,jquery,html,css,responsive-design,Javascript,Jquery,Html,Css,Responsive Design,我有jquery代码,下面是我用来控制响应式网站导航方面的代码。我的问题是: 有没有办法将var myWidth声明为全局的,这样我就不必在代码中重复它了 或者,是否有一种方法可以将两个$(window).resize函数合并为一个,以减少代码的冗余?我尝试了这个,代码不再工作了 这个脚本在IE8中不起作用(但在IE9和IE10中起作用),原因是什么 我通过研究各种jquery问题/答案和教程将这些代码拼凑在一起,因为不幸的是,我没有JS或jquery的实用知识。代码在我测试的所有设备/浏览

我有jquery代码,下面是我用来控制响应式网站导航方面的代码。我的问题是:

  • 有没有办法将var myWidth声明为全局的,这样我就不必在代码中重复它了

  • 或者,是否有一种方法可以将两个$(window).resize函数合并为一个,以减少代码的冗余?我尝试了这个,代码不再工作了

  • 这个脚本在IE8中不起作用(但在IE9和IE10中起作用),原因是什么

我通过研究各种jquery问题/答案和教程将这些代码拼凑在一起,因为不幸的是,我没有JS或jquery的实用知识。代码在我测试的所有设备/浏览器中都能正常工作。我确实意识到这段代码是相当多余的,我想请求指导来整理一下

提前谢谢

$( document ).ready(function() {

$('#menuHeader').on('click', function(e){
  e.preventDefault();
  $("#mainNav ul").slideToggle(350);
  $(this).find('span').toggleClass('icon-arrow-down2 icon-arrow-up2');
  $('#menuHeader').toggleClass('touchHover');
});

$(window).width(function() {
if ($(window).width() < 650)
$('#mainNav ul').hide();
});

$(window).resize(function() {
    var myWidth = Math.max( $(window).width(), window.innerWidth);
    if (myWidth > 650)
        $('#mainNav ul').show();
    else 
        $('#mainNav ul').hide();
});

$(window).resize(function() {
    var myWidth = Math.max( $(window).width(), window.innerWidth);
    if(myWidth > 650)
        $('#menuHeader').removeClass('touchHover');
        $('#menuHeader').find('span').addClass('icon-arrow-down2');
        $('#menuHeader').find('span').removeClass('icon-arrow-up2');

});

});
$(文档).ready(函数(){
$('menuHeader')。在('click',函数(e)上{
e、 预防默认值();
$(“mainNav ul”)。滑动切换(350);
$(this).find('span').toggleClass('icon-arrow-down2 icon-arrow-up2');
$('#menuHeader')。toggleClass('touchHover');
});
$(窗口).width(函数(){
如果($(窗口).width()<650)
$('mainNav ul').hide();
});
$(窗口)。调整大小(函数(){
var myWidth=Math.max($(window.width(),window.innerWidth);
如果(myWidth>650)
$('mainNav ul').show();
其他的
$('mainNav ul').hide();
});
$(窗口)。调整大小(函数(){
var myWidth=Math.max($(window.width(),window.innerWidth);
如果(myWidth>650)
$('menuHeader').removeClass('touchHover');
$('#menuHeader').find('span').addClass('icon-arrow-down2');
$(“#menuHeader”).find('span').removeClass('icon-arrow-up2');
});
});

窗口
已经是全局的,因此无需创建全局var
myWidth
。我可以问一下,为什么不能简单地将逻辑放入一个
$(窗口)。调整大小
而不是两个?当我尝试将两个函数合并到一个$(窗口)。调整大小时,我的代码不起作用。这就是我寻求帮助的原因——如果有一种方法可以将这两者结合起来,我很想知道怎么做!请编辑您的问题,并说明合并两个调整大小功能不起作用。一旦你这样做了,我会投票重新打开你的问题。我编辑了这些信息。