prototype-ujs
prototype-ujs copied to clipboard
ajax:complete not called when link is in updated area
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.
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);
},