编写以下jquery的更好方法

时间:2016-03-02 17:08:17

标签: javascript jquery

我对javaScript / jquery很新。 我编写了以下代码来切换移动导航,但我确信有一种简单的方法可以将以下代码块组合在一起。 我很感激建议如何写这个更好,更时尚的方式。 感谢

$(document).ready(function(){
var width = $(window).width();
    if(width <=500){
        $("nav").addClass("mobile").removeClass("desktop");
    }
    else{
        $("nav").removeClass("mobile").addClass("desktop");
    }

});

$(document).ready(function(){
  $(window).resize(function(){
    var width = $(window).width();
    if(width <=500){
        $("nav").addClass("mobile").removeClass("desktop");
    }
    else{
        $("nav").removeClass("mobile").addClass("desktop");
    }
});});

4 个答案:

答案 0 :(得分:4)

只需创建一个函数并调用它两次:

function changeClasses() {
    var width = $(window).width();
    if(width <=500){
        $("nav").addClass("mobile").removeClass("desktop");
    }
    else{
        $("nav").removeClass("mobile").addClass("desktop");
    }
}

$(document).ready(changeClasses);
$(window).resize(changeClasses);

答案 1 :(得分:3)

也许最好使用css媒体查询...

@media screen and (max-width: 500px){
    .desktop {
        width: or another rules...
    }
}

答案 2 :(得分:1)

你可以把它变成一个单独的功能,它会稍微清理一下:

function toggleClass() {
    var width = $(window).width();
    if(width <=500) {
        $("nav").addClass("mobile").removeClass("desktop");
    } else {
        $("nav").removeClass("mobile").addClass("desktop");
    }
}

$(document).ready(function(){
    toggleClass();
});

$(window).resize(function(){
    toggleClass();
});

答案 3 :(得分:0)

您可以随时在调整大小时添加事件,然后触发调整大小事件。我在事件中添加了一个命名空间,以便在触发它时不会与任何其他窗口调整大小事件冲突。

$(window).on('resize.load', function() {
  var isMobile = $(window).width() < 500;
  $("nav").toggleClass("mobile", isMobile).toggleClass("desktop", !isMobile);
}).trigger('resize.load');

https://jsfiddle.net/r6myh0z8/