- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
事件模板
<div class="more" on-click="more-detail">
<div class="icon-close" on-tap="close"></div>
</div>
单击 div 时,会显示更多详细信息,但有点不确定如何通过单击图标关闭 div 来关闭 div.more。
尝试通过教程来寻找答案,但找不到。我想通过使用与 JQuery 类似的方式,如下所示:
$('.more').hide();
它似乎有效 - 但是当返回到同一个 div 并单击时,需要两次才能再次打开详细信息。正常吗?
请帮忙。
最佳答案
实现此目的的最简单方法是使用数据绑定(bind) - 而不是手动修改 DOM(如 $('.more').hide()
),而是将额外的详细信息放入 block 中仅当某个值为真时才会呈现,并让 Ractive 确定何时显示和隐藏它:
<div class="more" on-click="set('showDetail', true)">
{{#if showDetail}}
<div class="icon-close" on-tap="set('showDetail', false)"></div>
{{/if}}
</div>
这样,您就不会遇到 DOM 和 View 模型不同步的情况 - 对于给定的 View 模型状态,保证只有一个 DOM 状态。
这是一个更完整的示例(单击“运行代码片段”):
var ractive = new Ractive({
el: 'main',
template: '#template'
});
body { font-family: 'Helvetica Neue', arial, sans-serif; font-weight: 200; color: #353535; } button { margin: 0 0 1em 0; } button:last-child { margin: 0; } .detail { background-color: #eee; border: 1px solid #ddd; padding: 1em; }
<script src="http://cdn.ractivejs.org/latest/ractive.js"></script>
<script src="https://rawgit.com/ractivejs/ractive-transitions-slide/master/ractive-transitions-slide.js"></script>
<main></main>
<script id='template' type='text/ractive'>
<div class='expandable'>
<button on-click='toggle("showDetail")'>toggle detail</button>
{{#if showDetail}}
<div class='detail' intro-outro='slide'>
<p>Here is some more detail!</p>
<button on-click='set("showDetail",false)'>hide detail</button>
</div>
{{/if}}
</div>
</script>
这种方法的另一个优点是它可以保持 DOM 整洁 - Ractive 只渲染您实际需要的内容,而不是在页面中包含不可见的元素。
关于javascript - Ractivejs - 如何点击时关闭幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27090121/
我正在使用 Ractive.JS 绑定(bind): var alertsBinding = new Ractive({ el: '.alerts', template: alerts
事件模板 单击 div 时,会显示更多详细信息,但有点不确定如何通过单击图标关闭 div 来关闭 div.more。 尝试通过教程来寻找答案,但找不到。我想通过使用与 JQuery 类似的方式,
如果我的 Ractive 模板中有以下内容: click me 然后我可以用这个来监听点击: app.on({ handleClick:function() { alert("
自从发现 Ractivejs 以来,我正在慢慢地将我的应用程序转移到它上面。 之前,我使用 vanilla JavaScript 构建了一个 html 树结构来创建元素,然后在完成后将其附加到页面。我
我在使用 Ractive 动态添加子组件时遇到了一些问题。 我正在制作一个时间表/日历组件,并通过选择一天的时间间隔来添加新的事件/ session 。这就是为什么我需要动态添加子组件。 现在我做这样
我正在尝试使用代理事件(on-mousedown、up、move、out)通过 RactiveJS 实现一个简单的可拖动 DIV 正在关注 JSFiddle工作正常,但是当用户移动鼠标太快时拖动停止。
我做错了什么吗? 我的模板 {{#formData.municipalities}} {{name}} {{/formData.municipalit
http://examples.ractivejs.org/comments 上面的例子中有一行: // fire an event, so we can (for example) // save
我知道在普通 JS 中你可以使用删除命令来删除对象,但我在文档中找不到任何用于对象操作的内容。 例如,我如何在ractivejs中删除这个对象? template.set('object', {hel
也许这是一个基本的 javascript 问题,而不是特定于 Ractivejs 的问题。 我如何向 Ractive 组件添加共享行为...例如,如果多个组件都有一个 strip_whitspace(
RactiveJS 与 JSX 兼容吗? 我猜有些标记不兼容。我喜欢强类型的想法,并且能够在 JavaScript 源代码中干净地编写模板。也许这被认为是糟糕的设计? 最佳答案 没有。 React.j
我一直在研究许多双向数据绑定(bind)库,但到目前为止还没有找到一个可以在根据模型更改设置输入值时触发 onchange 事件的库。有没有办法用 ractive.js 做到这一点? 最佳答案 这是可
基本上我想要这个:In Mustache templating is there an elegant way of expressing a comma separated list without
我发现自己处于一种情况,我想从父 Ractive 访问从 Ractive 组件创建的实例。 例如。 var myComponent = Ractive.extend( { us
我正在尝试将一个 active 类名添加到被点击的 li 中。显示它已被选中。 我的模板: var legCatagoryTemplate = "{{#legs:i}}{{name}}W: {{wi
有什么方法可以使用参数运行计算属性吗?几乎是一个计算函数。 JS代码 computed: { IsShapeToolSelected: function (toolId) {
我有一个在单击元素时调用的函数,我正在比较两个数组。第一个数组使用过滤数组的表达式打印到 DOM。 Handlebars : {{#each search(~/budgets, searchValue
我试图让 HTML 有条件地出现在 ractive 模板中,但没有成功。 正如您在此 JSFiddle 中看到的那样结果与预期不同 - 表是单行。 我的模板: {{#list:nu
我在 RactiveJS 中使用 Pikaday 日期选择器作为装饰器,想在装饰器之外访问日期选择器的 api,但将其添加到返回对象似乎不起作用。请有人指出我正确的方向。 http://jsbin.c
我有一个页面显示来自带有 Ractive.js 的 json 的时间相关文本片段。初始化后,我想每分钟检查一次,存储在 json 中的停止时间是否到期。然后应该隐藏文本片段。 我尝试过的事情: {{#
我是一名优秀的程序员,十分优秀!