2016-03-26 20 views
2
var Menu = function() { 
    state = 0; 
} 
Menu.prototype.click = function() { 
    if (this.state == 1) { 
     $(document).ready(function(){ 
      $("#collapse-menu").click(function(){ 
       $("#list-navbar").show(500); 
       this.state = 0; 
      }); 
     }); 
    } else { 
     $(document).ready(function(){ 
      $("#collapse-menu").click(function(){ 
       $("#list-navbar").hide(500); 
       this.state = 1; 
      }); 
     }); 
    } 
} 

ページの読み込み時にクラスをインスタンス化し、click onclickイベントを呼び出すだけでクラスをインスタンス化できますか?JavaScript:非表示と表示メニュークラス

+1

すべてについて、このコードは何ですか?私はその「メニュー」とは何を意味し、それは「国家」ですか? –

+0

折りたたみメニューです。状態が1の場合、それは非表示であることを意味し、ユーザーがボタンをクリックした場合に表示します。 0の場合は表示されていることを意味し、ユーザーがボタンをクリックすると非表示にします。 – Chittolina

+0

'$(document).ready()'ハンドラをネストする必要はありません。これらの行は削除できます。 –

答えて

2
var Menu = function() { 
    this.state = 0; 
}; 

Menu.prototype.click = function() { 
    var that = this; // our Menu object 

    $("#collapse-menu").click(function(){ 
    that.state ^= 1; // Toggles 1,0,1... values 
    $("#list-navbar")[that.state?"hide":"show"](500); 
    }); 
}; 


jQuery(function($) { // DOM ready here 

    var m = new Menu(); // New Menu instance 
    m.click();   // init clicks on #collapse-menu 

}); 

jsBin demo

について^トグラーとして:https://stackoverflow.com/a/22061240/383904

+1

優れたビット単位の使い方...、今日何かを学んだ –