我有一个使用bootstrap模式和AJAX的rails应用程序。我有两个问题:
即使在//.需要jquery.turbolinks(在req jquery之后)和// =需要turbolinks之后// = require application.js中的bootstarp-sprockets,我的js.erb文件(new当我点击模态的提交按钮时,将不会执行,更新,删除)。
没有turbolinks,一切正常(创建,更新,删除),除了一件事。如果我创建一个新任务,它会在点击模态的提交按钮之后立即显示,这要归功于AJAX,但是如果我立即点击新编辑对象的编辑/删除(删除也发生了模态)按钮,模态不会不要弹出。页面重新加载后,一切正常。 这很奇怪,因为如果我用模态编辑一个非新对象,那么我可以再次单击编辑/删除并更新/销毁同一个对象。新模态也可以正常工作,所以如果我创建一个新对象,我可以再次点击新按钮,模态显示出来。因此,只有创建一个新的,然后编辑该对象组合才会出现问题。
有没有遇到过同样的问题?
所以我目前没有turbolinks的application.js目前如下:
//= require jquery
//= require jquery.turbolinks
//= require jquery-ui
//= require jquery_ujs
//= require chat
//= require refile
//= require bootstrap-sprockets
//= require private_pub
//= require_tree .
create.js.erb:
var ready = function () {
$("#newtask").modal('hide');
$(".task_name_company").val('');
$(".contentarea").val('');
$(".task_deadline").val('');
//different div class for different partials
$(".newtaskinsert").prepend('<%= j render @task %>');
$(".newtaskinsert2").prepend('<%= j render partial: "tasks/task_between", locals: { task: @task } %>');
$("#task_<%= @task.id %>").hide().fadeIn(1000);
//26= pagination(12)*every task has 2 tr(2)+ extra task that must be hidden(2)=12*2+2
var n = $('tr').length;
if (n > 26) {
$("tr").slice((-2*(n-26)/2)-1).fadeOut(500);
};
};
$(document).ready(ready);
$(document).on('page:load', ready);
update.js.erb:
var ready = function () {
$('#updatetask_<%= @task.id %>').modal('hide');
$('#task_<%= @task.id %>').fadeOut(400, function(){
$(this).remove();
$(".newtaskinsert").prepend('<%= j render @task %>');
$(".newtaskinsert2").prepend('<%= j render partial: "tasks/task_between", locals: { task: @task } %>');
});
};
$(document).ready(ready);
$(document).on('page:load', ready);