2012-02-28 1 views
0

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

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

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

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

$("#notice").remove(); 
$("#some_id").prepend("<section id='notice'>example!</section>"); 
+0

вау, это сработало! Большое спасибо человеку! Я должен был подумать об этом ... – Tomato

Смежные вопросы