首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Volt中实现jQuery toggleClass?

如何在Volt中实现jQuery toggleClass?
EN

Stack Overflow用户
提问于 2015-06-14 11:12:59
回答 1查看 138关注 0票数 2

我正在玩伏特,目前正在我的Volt应用程序中为侧边栏做一个简单的toggleClass (没有运气)。这是一个代码示例。

app/main/view/main.html

代码语言:javascript
复制
<:Title>
  {{ view main_path, "title", {controller_group: 'main'} }}

<:Body>

  <div id="wrapper">
    <div id="sidebar-wrapper">
      <ul class="sidebar-nav">
        <li><a href="#">blah</a></li>
        <li><a href="#">blah</a></li>
        <li><a href="#">blah</a></li>
        ...
      </ul>
    </div>

    <div id="page-content-wrapper">
      <div class="container-fluid">
        <div class="btn btn-default sidebar-toggler">Toggle Sidebar</div>
        <:volt:notices />
        {{ view main_path, 'body', {controller_group: 'main'} }}
      </div>
    </div>
  </div>

app/main/assets/js/侧栏.js

代码语言:javascript
复制
$(document).ready(function() {
  $(".sidebar-toggler").click(function(e) {
    e.preventDefault();
    $("#wrapper").toggleClass("toggled");
  });
});

当单击div.sidebar-toggler时,toggled类应该添加到div#wrapper中.没有,也许还有另一种方法可以让Volt做到这一点。

以上代码不起作用。什么是好伏特方式来做这个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-14 19:46:42

在volt中,您通常会在控制器上将切换状态设置为"无功存取器“,然后使用绑定更新类状态。由于控制器是绑定的上下文,所以我们可以在if绑定中检查reactive_accessor的状态。

在主计长中:

代码语言:javascript
复制
module Main
  class MainController < Volt::ModelController
    reactive_accessor :toggled

    def toggle_sidebar
      self.toggled = !toggled
    end
    ....

认为:

代码语言:javascript
复制
...
<div class="btn btn-default sidebar-toggler {{ if toggled }}toggled{{ end }}" e-click="toggle_sidebar">Toggle Sidebar</div>
...

当我们调用self.toggled =方法时,它会更改状态,并使用该数据响应更新任何绑定。电子单击调用控制器上的toggle_sidebar方法.做这样简单事情的常见方法是将if直接放到视图中。我们还可以将其放入返回字符串并绑定到该字符串的方法中。

代码语言:javascript
复制
def toggled_class
  toggled ? 'toggled' : ''
end

....

<div class="btn btn-default sidebar-toggler {{ toggled_class }}" e-click="toggle_sidebar">Toggle Sidebar</div>

希望这有帮助,如果你需要的话,我可以澄清更多。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30828685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档