【发布时间】:2015-08-13 20:50:31
【问题描述】:
我试图让以下代码工作,但它总是将类更改为我拥有的所有 .tog-faq div,我无法让 $(this) 工作。
我已经尝试过数千种方式使用.toggle(); 和.toggleClass(),但它不起作用。与haml或rails有关吗?
部分视图:
- @topics.each do |topic|
.title.col-md-4.white-font
.red-back
%h3.white-font= topic.name
%button{class: 'btn btn-sh-grey', id: 'link-panel', onclick: 'ToggleFaq()'}
%span.faq-tog Show
%div.panel-sub.tog-faq.invisible
-if faq_questions(topic).present?
- faq_questions(topic).each do |question|
.faq-con
%h4.panel.panel-heading.item-name.dark-grey= question.questions
当前 jquery 代码:
function ToggleFaq() {
$('.tog-faq').not(this).addClass('invisible');
$(this).toggleClass('active');
}
css
.invisible {
display: none;
}
.active {
display: block;
}
任何帮助都会很棒!
【问题讨论】:
-
什么代码?请张贴!
-
this在调用函数时不起作用。除非您将其作为参数传递,否则该函数将不知道调用了什么元素。试试看这个api.jquery.com/click。 -
嗯我想我明白了......但是,我怎样才能在不设置为第一个参数的情况下从
.tog-faq获取this?因为如果它是display: none,我无法单击 div
标签: javascript jquery css ruby-on-rails haml