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

时间:2014-01-10 05:47:19

标签: javascript jquery html css responsive-design

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

  • 有没有办法将var myWidth声明为全局,所以我不必在代码中继续重复它?

  • 或者,有没有办法将两个$(window).resize函数合并为一个,以减少代码冗余?我试过这个,代码不再有效。

  • 此脚本在IE8中不起作用(但在IE9和10中有效),可能是什么原因?

我通过研究各种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');

});

});

0 个答案:

没有答案