Следующее работает нормально. Но его единственная работа для первого экземпляра другого экземпляра дохода просто показывает список без краха или расширения. Когда пользователь нажимает на revene.Amount, он должен расширяться и показывать доход. Q1, доход. Q2, доход. Q3 и доход. Q4. И по умолчанию все должно быть свернуто.как развернуть и перекрыть список
<% @estate.revenues.each do |revenue| %>
<tr>
<td><%= revenue.Year %></td>
<div id="listContainer">
<ul id="expList">
<li>
<%= revenue.Amount %>
<ul>
<li><%= revenue.Q1 %></li>
<li><%= revenue.Q2 %></li>
<li><%= revenue.Q3 %></li>
<li><%= revenue.Q4 %></li>
</ul>
</li>
</ul>
</div>
<%= link_to 'Destroy', estate_revenue_path(@estate,revenue), method: :delete, data: { confirm: 'Are you sure?' } %>
<%= link_to 'Edit', edit_estate_revenue_path(@estate,revenue) %>
<%= link_to 'View', estate_revenue_path(@estate,revenue) %>
<br/>
</tr>
<% end %>
<br />
<%= link_to 'New Revenue', new_estate_revenue_path(@estate.id) %>
<script>
function prepareList() {
$('#expList').find('li:has(ul)')
.click(function(event) {
if (this == event.target) {
$(this).toggleClass('expanded');
$(this).children('ul').toggle('medium');
}
return false;
})
.addClass('collapsed')
.children('ul').hide();
};
$(document).ready(function() {
prepareList()
});
</script>
Он не работает. И я не знаю, как использовать журнал. Я новичок в javascript –
Лично я использую Chrome для отладки, поэтому мой совет предполагает использование этого браузера. Перейдите в раздел «Просмотр»> «Разработчик»> «Инструменты разработчика» или нажмите «ALT + CMD + I». Это должно открыть панель инструментов разработчика. Оттуда вы увидите серию вкладок вверху. Нажмите на ** Консоль **. Здесь появятся ваши предупреждения, ошибки и журналы JavaScript. Чтобы записать что-то в консоли, вы пишете 'console.log ('Hello World');' - вы можете протестировать это, написав это прямо в консоли, так как это интерактивно. Чтобы зарегистрировать свой выбор, вставьте 'console.log ($ listItem);' под его объявлением. – wagerfield
Спасибо за помощь. Я решил проблему с помощью JQuery –