【问题标题】:in meteor how to stop functionalities to work at a time?在流星中如何停止功能一次工作?
【发布时间】:2017-01-10 02:58:27
【问题描述】:

在meteor中,我在提交表单后动态创建了一张卡片。动态卡片包含显示和隐藏按钮。当我点击显示选项按钮时,隐藏部分显示所有卡片而不是特定卡片。问题是卡是动态创建的,所以我认为这是问题..如何使功能分别对每张卡工作。

这里附上代码:

<div id="newActionCard">
    {{#each newaction}}
                 <div class="workflowcard">
                 <div class="module-card">
                     <div class="res-border"></div>
                    <div class="card-img"></div>
                    <div class="res-content">
                     <div class="  assigned-team">{{team}}</div>
                    <div class=" newaction-name">{{action_title}}</div><hr>
                    <div class="description">{{description}}</div>
                    <div class=" due-on">Due on:{{d_date}}</div><hr>
                    <div class="subcontent">
                        {{> actioncardsubcontent}} 
                     </div>
                     <div class="reqext">
                           {{> requestextensioncard}} 
                 </div>
                     </div>
                     <div class="due">

                       Due on:
                        <div>
                            <span class="day-stamp">THU</span><br>
                        <div class="date-stamp">26</div>
                        <div class="month-stamp">AUG
                        </div>
                        </div>
                    </div>
                   </div>
     <div class="btn-box newaction">
      <button type="button" class="cancelsub" >New Action</button>
      <button type="submit" class="createbtnsub" >Show Options</button>
    </div>
     <div class="btn-box showoption">
      <button type="button" class="hideoption"  style="display:none">Hide Options</button>
      </div>

                {{/each}}                                                                                                                                              
        </div>

在 JS 中,我在事件中编写了隐藏和显示功能。现在如何一次停止所有卡片的功能。

这是我的 JS:

Template.workflow.events({

   "click .createbtnsub" : function() {
      $( ".subcontent" ).show();
     $('.createbtnsub').hide();
        $('.cancelsub').hide();
      $('.hideoption').show();
       $('.requestextension').show();

   },
   "click .hideoption": function(){
       $('.subcontent').hide();

   },



       "click .hideoption": function(){
         $(".subcontent").hide();
         $('.cancelsub').show();
         $('.createbtnsub').show();
         $('.requestextension').hide();
         $('.hideoption').hide();
         $('.reqext').hide();
     }, 



     "click #createActionBtn": function(){

         $('#createAction').hide();
         $('.editw').show();
         $('.hidew').show();
     },
});

Template.actioncardsubcontent.rendered = function(){
    this.$(".subcontent").hide();
};

Template.requestextensioncard.rendered = function(){
    this.$(".reqext").hide();

};

Template.workflow.helpers({
    getWorkflow: function(){
        return Workflow.find();
    },
    user: function(){
 return  Meteor.users.find({});
 },
 getNewaction: function(){
        return Newaction.find();
    },

});

【问题讨论】:

  • 你能发布你的 JS,因为那是功能所在。然而,在猜测它适用于你的所有卡片时,听起来你没有调用它,event.current.Target 或索引引用。但是等你发完 JS 我就知道了。
  • 我已经附上了我的 JS ..

标签: javascript jquery html css meteor


【解决方案1】:

请参阅以下内容并根据需要调整选择器:

     "click .showoption": function(event){
        $(event.currentTarget).next('button').show();
     }

这将适用于选择同级元素,但是作为提示,我建议您重写您的 template.helper,它将卡片数据从数据库返回到更具体的内容。

类似于基于索引或 id 的动态类,因此您的类/id 名称将返回如下 .showoption-12kjddfse4 。然后您可以获取当前目标的属性并将其应用于您的 js 选择器。

作为对为什么显示所有按钮的一种解释,您是否使用了类选择器,它用于抓取元素/节点组。这也是为您的用例创建更具体的类名/ID 的另一个原因。

所以在你的班级名称中你可以做类似的事情

<button class="showoption" id="{{_id}}">button</button>
<button id="hiddenoption-{{_id}}" class="hiddenoption">button</button>

然后选择你的元素会更容易如下:

'click .showoption'(event) => {
   let id = event.currentTarget.getAttribute(id);
   document.getElementById('hiddenoption-'+id).style.display = 'block';
}

【讨论】:

  • 嗯...我确实测试过了。当您运行它时,控制台是否返回错误?
  • 您是否也尝试过按照我的建议创建动态 ID 或类作为第二个选项?您能否将要单击的 html 按钮/链接和要显示的隐藏选项与与功能无关的 html 分开。这将有助于澄清哪些按钮是特定于您的问题的。
  • 好的,我会正确地附上代码,并且会解释清楚。在控制台中它显示 id 未定义。当我尝试使用上述方法时。我已经给出了在提交表单时动态生成卡片的类,并为按钮提供了类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2015-12-23
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
相关资源
最近更新 更多