2016-03-26 181 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

^爲toggler:https://stackoverflow.com/a/22061240/383904

+1

優秀的按位使用...,今天學到了一些東西 –