Rails AJAX выполняется много раз - PullRequest
0 голосов
/ 28 февраля 2012

ОК, поэтому я создал приложение Rails, в котором у меня есть контроллер, который получает данные из формы на домашней странице:

class UsersController < ApplicationController
  def some_method
    ...
    respond_to do |format|
      format.js { render "some_method_first" }
    end
  end
end

А внутри some_method_first.js я получил:

$("#some_id").prepend("<section id='notice'>example!</section>");
$(function () {
  $("#notice").delay(500).fadeIn('slow', function () {
    $(this).delay(2500).fadeOut;
  });
});

Сложность в том, что когда я пытаюсь что-то ввести на главной странице и отправить, первый раз это нормально, но второй раз, два "примера!" появляются и в третий раз три "примера!" появляются разделы ...

Я схожу с ума ... Кто-нибудь может предложить мне какую-нибудь подсказку?

Спасибо, вперед!

1 Ответ

1 голос
/ 28 февраля 2012

Похоже, вы добавляете новый section каждый раз.Если вы не обновите, старые все еще будут там, так что вы просто продолжаете добавлять другой.

Вам нужно проверить, существует ли #notice, или лучше, просто удаляйте его каждый раз:

$("#notice").remove();
$("#some_id").prepend("<section id='notice'>example!</section>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...