2016-03-26 8 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; 
      }); 
     }); 
    } 
} 

Как я могу создать экземпляр класса на загрузке страницы и просто вызвать функцию onclick click, сохраняя экземпляр класса?JavaScript: Hide and Show Menu Class

+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

Отличное побитовое использование ..., узнал что-то сегодня –