2017-06-23 16 views
0

私は、デバイスがモバイルにあるかどうかを検出できるプラットフォームを使用しています。モバイルで表示したときに別の設定を使用するjsスクリプトを使用しています。私はこれをもっと簡単にすることができる方法があれば尋ねていますか?これは私のサンプルコードです:デスクトップとモバイルのスクリプト初期化を処理する最も良い方法は?

function loadKwicks(){ 
    function desk(){ 
    setTimeout(function(){ 
     $('.kwicks').kwicks({ 
     minSize: 20, 
     behavior: 'menu', 
     duration: 500, 
     autoResize:true 
     }); 
    },500) 
    } 
    function mob(){ 
    setTimeout(function(){ 
     $('.kwicks').kwicks({ 
     minSize: 80, 
     behavior: 'menu', 
     duration: 500, 
     autoResize:true, 
     isVertical:true 
     }); 
    },500) 
    } 

    if (data.device === "mobile") { 
    mob(); 
    } else { 
    desk(); 
}} 

答えて

1

これは同じです....しかし、別の言い方をします。

function loadKwicks(){ 
    var mobSettings = { 
    minSize: 80, 
    behavior: 'menu', 
    duration: 500, 
    autoResize:true, 
    isVertical:true 
    }; 

    var deskSettings = { 
    minSize: 20, 
    behavior: 'menu', 
    duration: 500, 
    autoResize:true 
    }; 

    var settings = (data.device === "mobile") ? mobSettings : deskSettings; 

    setTimeout(function(){ 
    $('.kwicks').kwicks(settings); 
    },500); 
} 

さらに短くすることができます。

function loadKwicks(){ 
    var settings = [ 
    { 
     minSize: 20,  // Desktop settings 
     behavior: 'menu', 
     duration: 500, 
     autoResize:true 
    }, 
    { 
     minSize: 80,  // Mobile settings 
     behavior: 'menu', 
     duration: 500, 
     autoResize:true, 
     isVertical:true 
    } 
    ]; 

    setTimeout(function(){ 
    $('.kwicks').kwicks(settings[(data.device === "mobile")?1:0]); // True will evaluate as 1 
    },500); 
} 
+1

これはクリーンでシンプルです。なぜ私はチップのためのオブジェクトありがとうと思ったのですか? :D – icedoge

関連する問題