2016-02-23 2 views
-1

Я создал функцию Template.inquiry.events({ в meteor.js, которая берет данные щелчка для кнопок и добавляет к ним класс. Это работает нормально. То, что не работает, - это когда я пытаюсь удалить этот класс.removeClass не работает в meteor.js

Это выглядит следующим образом:

Template.inquiry.events({ 
    'click .button': function(event){ 

     var button_id=event.currentTarget.id 

     report = false; 
     consult = false; 
     contract = false; 

     $("#" + button_id).addClass('selected'); 

     if(button_id == 'report' && report == false) { 
      report = true; 
      $("#" + button_id).addClass('selected'); 
     } 
     else if(button_id == 'consult' && consult == false) { 
      consult = true; 
      $("#" + button_id).addClass('selected'); 
     } 
     else if(button_id == 'contract' && contract == false) { 
      contract = true; 
      $("#" + button_id).addClass('selected'); 
     } 
     else if(button_id == 'report' && report == true) { 
      report = false; 
      $("#" + button_id).removeClass('selected'); 
     } 
     else if(button_id == 'consult' && consult == true) { 
      consult = false; 
      $("#" + button_id).removeClass('selected'); 
     } 
     else if(button_id == 'contract' && contract == true) { 
      contract = false; 
      $("#" + button_id).removeClass('selected'); 
     } 

    } 
}); 

Первые три «если» работают нормально, но removeClass сослагательного наклонения не работают. Есть идеи?

ответ

0

На каждом нажмите reportconsult и contract являются false так «иначе если», где вы проверить report == true может не вызвать. Если вы хотите хранить состояния между событиями использовать Session или ReactiveVar или только Template.instance() свойства как

Template.inquiry.onCreated(function() { 
    this.states = {}; 
    this.states.report = false; 
}); 
... 

    else if(button_id == 'consult' && !Template.instance().states.report) { 
     Template.instance().states.report = true; 
     $("#" + button_id).addClass('selected'); 
    } 
    else if(button_id == 'report' && Template.instance().states.report) { 
     Template.instance().states.report = false; 
     $("#" + button_id).removeClass('selected'); 
+0

Могу ли я хранить эти значения в моей БД? (истинная или ложная переменная) – user1072337

+0

Зачем вам нужно хранить его в БД? Речь идет об пользовательском интерфейсе, как я вижу, поэтому лучше использовать клиентскую часть. Если вы хотите сохранить состояние между перезагрузкой, вы можете использовать локальное хранилище браузера пользователя. –

Смежные вопросы