Возможна ли функция отправки jQuery, чтобы изменить код jQuery или изменить или прочитать какой блок читается? - PullRequest
0 голосов
/ 10 марта 2011

У меня есть таблица мест, где каждое место принадлежит определенной области, и я пытаюсь узнать, как использовать jQuery в моем приложении.У меня есть форма фильтра на странице индекса места проведения, которая фильтрует части места проведения по области.У меня также есть изображение карты .png, которое показывает все области и имеет значки, размещенные по абсолютному положению, показывающие, где находятся места в этих областях.

Код jQuery в моем index.html.erb меняет изображение карты:

<script type="text/javascript">
  $(document).ready(function() {
    $("form").submit(function() {
      if ($("#area-1").is(':checked'))
        $(".map_container").addClass("area1");
      else if ($("#area-2").is(':checked'))
        $(".map_container").addClass("area2");
      else if ($("#area-3").is(':checked'))
        $(".map_container").addClass("area3");
      else
        nil;
    });
  });
</script>

Код jQuery в моем частичном заведении отображает значок карты:

<script type="text/javascript">
  document.getElementById("venue_map_icon_<%= venue.id %>").style.left= "<%= venue.iconleftpx %>px";
  document.getElementById("venue_map_icon_<%= venue.id %>").style.top= "<%= venue.icontoppx %>px";
</script>

Есть ли способ сделать код на странице индекса, который изменяет изображение карты, также изменитьчастичный код?

Таким образом, если выбран area1, то изменяется изображение карты, но также и строка кода в партиалах, которая в настоящее время читает «<% = venue.iconleftpx%> px» и «<%= venue.icontoppx%> px вместо этого «читает» <% = venue.iconleftpx2%> px »и« <% = venue.icontoppx2%> px »?Таким образом, при изменении изображения карты расположение отфильтрованных объектов меняется вместе с ним.Или возможно иметь 2 блока кода и изменить его, который читается в зависимости от того, что выбрано в форме фильтра?

Спасибо за любую помощь и извините, если мой вопрос неясен или отсутствует, я супер новыйк этому.

1 Ответ

0 голосов
/ 10 марта 2011

Я не следую за вами полностью, но я думаю, что вы можете просто загрузить карту и таблицу одновременно и извлечь координаты для значков карты из базы данных с помощью ajax-get-request, когда пользователь отправит запрос.

На стороне сервера вы можете просто добавить ответ JSON, например, к действию show, и рельсы отобразят место (или только координаты) в JSON.Или у вас может быть специальное действие, которое принимает массив ID-места: s и возвращает массив координат.

На стороне клиента вы будете использовать функции успеха или завершения в jQuery.ajax () -метод для перемещения значков карты с использованием данных JSON, которые вы получили.

Информация о jQuery ajax (jQuery API)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...