Я использую has_scope для фильтрации файлов для фильтрации заданий на странице show.html.erb.После того, как задания отфильтрованы или нет, пользователь может щелкнуть по названию задания и просмотреть детали на той же странице частично.У меня есть две функции в show.js.erb, за исключением того, что когда пользователь нажимает на название должности, система снова запускает оба вызова и повторно инициализирует выбор работ.Можно ли изолировать второй вызов, чтобы он не запускал обе функции?
У меня две линии работают хорошо. show.js.erb
$("#job_indiv").html("<%= j render partial: 'jobs/show', :locals => {:job => @job} %>");
(Приведенная выше функция отображает отдельные детали задания)
$('#job_menu_left').html('<%= escape_javascript(render('menu_left')) %>')
(Приведенная выше функция фильтрует список заданий)
Представление :
<div class="job_intro_display">
<%= form_tag job_path, method: 'get', id: "jobs_search" do %>
<div>
<% @industries = Job.all.distinct.pluck(:industry) - ["", nil] %>
Industry:<br>
<% @industries.each do |industry| %>
<div class="btn-filter">
<%= check_box_tag "by_industries[]", industry %> <%= industry %>
</div>
<% end %>
</div>
</div>
<div id="job_menu_left">
<%= render 'menu_left' %>
</div>
<div id="job_indiv">
<%= render 'jobs/show' %>
</div>
<script type="text/javascript">
$(function () {
$('input[type=checkbox]').change(function () {
$.get($('#jobs_search').attr('action'),
$('#jobs_search').serialize(), null, 'script');
return false;
});
$('#jobs_search').submit(function () {
$.get(this.action, $(this).serialize(), null, 'script');
return false;
});
});
</script>
Каждый ajax должен иметь возможность работать отдельно.