rails中的bootstrap模式无法正常工作(甚至没有turbolinks)

时间:2015-10-27 15:16:39

标签: javascript ruby-on-rails ajax twitter-bootstrap-3 turbolinks

我有一个使用bootstrap模式和AJAX的rails应用程序。我有两个问题:

  1. 即使在//.需要jquery.turbolinks(在req jquery之后)和// =需要turbolinks之后// = require application.js中的bootstarp-sprockets,我的js.erb文件(new当我点击模态的提交按钮时,将不会执行,更新,删除)。

  2. 没有turbolinks,一切正常(创建,更新,删除),除了一件事。如果我创建一个新任务,它会在点击模态的提交按钮之后立即显示,这要归功于AJAX,但是如果我立即点击新编辑对象的编辑/删除(删除也发生了模态)按钮,模态不会不要弹出。页面重新加载后,一切正常。 这很奇怪,因为如果我用模态编辑一个非新对象,那么我可以再次单击编辑/删除并更新/销毁同一个对象。新模态也可以正常工作,所以如果我创建一个新对象,我可以再次点击新按钮,模态显示出来。因此,只有创建一个新的,然后编辑该对象组合才会出现问题。

  3. 有没有遇到过同样的问题?

    所以我目前没有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);
    

0 个答案:

没有答案