prototype-ujs icon indicating copy to clipboard operation
prototype-ujs copied to clipboard

ajax:complete not called when link is in updated area

Open anyware opened this issue 13 years ago • 1 comments

I have:

<body>
<head>
<%= javascript_include_tag :defaults %>
<%= javascript_include_tag "myscript" %>
</head>
</html>
<div id="my_div">
<%= link_to new_model_path, :remote => true %>
</div>
</html>
</body>
models_controller
def new
@model = Model.new
end

new.js.erb
$("my_div").update("<%= escape_javascript(render :partial => 'new) %>");

myscript.js
document.on('ajax:complete', 'a', function(response) {
alert('a:complete');
});


my on:complete function is never called.

anyware avatar Apr 26 '11 03:04 anyware

Well, I found "a solution". I don't know if there is a better way to do it. I changed the rails.js oncomplete bit of code:

onComplete:    function(request) {
                  if(!$(element).descendantOf(document)){
                    if(!$("rails_reserved_garbage")){
                      $(document.body).insert('<div style="display:none;" id="rails_reserved_garbage">asdsad</div>');
                    }
                    $("rails_reserved_garbage").update(element);
                  }
                  element.fire("ajax:complete", request);
                  $("rails_reserved_garbage").remove(element); 
                },

anyware avatar Apr 30 '11 02:04 anyware