使用流星模板事件突出显示所选列表项
Using a meteor template event to highlight selected list item
我正在创建一个流星应用程序,该应用程序在列表组中有一个答案列表。用户需要选择一个答案。我想点击的答案突出显示黄色(在下面的模板事件中工作)和以前点击的答案返回到默认背景,即不突出显示(不工作)。我尝试了各种解决方案,但似乎都不起作用。以下是最新消息:模板:
<template name="questItem">
<div class="quest">
<!--<div class="quest-content">-->
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">{{Question}}</h3>
</div>
<div class="panel-body">
<ul class="list-group" id="answerswer">
<li class="list-group-item" name="answerswer" id="A">A. {{A}}</li>
<li class="list-group-item" name="answerswer" id="B">B. {{B}}</li>
<li class="list-group-item" name="answerswer" id="C">C. {{C}}</li>
<li class="list-group-item" name="answerswer" id="D">D. {{D}}</li>
<li class="list-group-item" name="answerswer" id="E">E. {{E}}</li>
</ul>
<button type="button" name="submitAnswer" class="btn btn-default">Answer</button>
{{#if imagePresent}}
<p>There are images</p>
{{/if}}
{{> responseToAnswer}}
</div>
</div>
</div>
</template>
事件助手:
Template.questItem.events({
'click #answer': function (e, tmpl){
var ans = e.target.id;
e.currentTarget.style.backgroundColor = " ";
e.target.style.backgroundColor = "yellow";
Session.set("selectedAnswer", ans);
Session.set("isSelected", !Session.get("isSelected"));
},
任何帮助都将非常感激。请注意,这是在模板"questiontem"中,所以我的事件帮助器中的"this"指的是包含所有答案的"this"问题项。遗憾的是,我没有重复回答
创建一个带有黄色属性的类list-group-clicked
单击时,遍历所有元素并将class设置为list-group-item,除了刚刚单击的元素(或将所有元素设置为-item,然后将其中一个设置为-clicked)
用JavaScript修改元素's类
更深层的改变是让类也来自数据或handlebar帮助器:
。{{一}}
然后让事件更改您的数据。在过去,这对于避免冲突是非常必要的,但是模板引擎的重写使它变得不那么必要了。
相关文章:
- 突出显示列表的父项,但不突出显示所有子项
- 如何随机显示列表项的顺序
- 在underscore.js中显示列表中的所有项目(使用Parse.com)
- 使自动完成可搜索下拉菜单don'我不想在点击搜索时显示列表
- 用javascript在html显示列表中显示新成员
- 单击旧列表只显示上次创建的id,应在单击时显示列表id
- Ember-解决所有请求时显示列表
- 隐藏并显示列表中的元素
- 仅在单击下拉列表中的项目时显示列表框
- Ui自动完成不显示列表
- 单击按钮时隐藏并显示列表
- 在可滚动的库中显示列表
- 无序列表 jQuery 在固定位置显示列表中的选定项
- AngularJS在URL正下方显示列表
- 使用 ajax 显示列表
- 制作另一个窗体,该窗体将显示列表(自动完成)并将用作所选字段的值
- 在不使用按钮的情况下显示列表,带有挖空功能
- 如何使用 object.id 显示列表中的 object.name
- PHP 如果选中复选框<选择>则会显示列表
- 是否可以在单击 html 未显示列表中的项目标记时触发事件