【问题标题】:removeClass not working in meteor.js [closed]removeClass 在meteor.js 中不起作用[关闭]
【发布时间】:2016-02-24 03:07:21
【问题描述】:

我在meteor.js 中设置了一个Template.inquiry.events({ 函数,它获取按钮的点击数据并向它们添加一个类。这工作正常。什么不起作用,是当我尝试单击删除课程时。

看起来像这样:

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');
        }

    }
});

前三个“ifs”工作正常,但 removeClass ifs 不工作。有什么想法吗?

【问题讨论】:

    标签: javascript jquery meteor


    【解决方案1】:

    在每次点击时,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');
    

    【讨论】:

    • 我可以将这些值存储在我的数据库中吗? (真假变量)
    • 为什么需要将其存储在数据库中?正如我所见,这是关于 UI 的,所以最好使用客户端部分。如果要在重新加载之间保存状态,可以使用用户浏览器的本地存储。
    猜你喜欢
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 2018-04-01
    • 2012-05-06
    • 1970-01-01
    • 2015-06-18
    相关资源
    最近更新 更多