删除类在流星.js中不起作用

removeClass not working in meteor.js

本文关键字:不起作用 js 流星 删除      更新时间:2023-09-26

我在meteor中设置了一个Template.inquiry.events({函数.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');
        }
    }
});

前三个"if"工作正常,但 removeClass ifs 不起作用。 有什么想法吗?

每次

单击时report consultcontract都会false,因此您检查report == true的"else if"无法触发。如果您希望在事件之间存储状态,请使用SessionReactiveVar或仅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');