javascript - 如何在另一个函数之后每次调用javascript函数?

标签 javascript jquery ruby-on-rails

我有两个表格,当我点击相应的复选框时,我会在其中移动特定的行。 由于 x-editable 库,除了复选框外,每一行还包含内联编辑字段。

问题是当我将某行移动到另一个表中时,我无法再编辑它的字段。似乎 setXeditable() 只运行一次,然后在调用另一个 java 脚本后它没有被执行。我必须重新加载页面才能再次编辑这些字段。我该如何解决?

application.js

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require turbolinks
//= require bootstrap-sprockets
//= require bootstrap3-editable/bootstrap-editable
//= require bootstrap-datepicker/core
//= require bootstrap-datepicker
//= require_tree .

#x-editable

var setXeditable;

$.fn.editable.defaults.mode = 'inline';

setXeditable = function() {
  return $("[data-xeditable=true]").each(function() {
    return $(this).editable({
      ajaxOptions: {
        type: "PUT",
        dataType: "json"
      },
      params: function(params) {
        var railsParams;
        railsParams = {};
        railsParams[$(this).data("model")] = {};
        railsParams[$(this).data("model")][params.name] = params.value;
        return railsParams;
      }
    });
  });
};

#function that moves rows

function pressing(arg){
      user_id = $(arg).attr('data-user-id')
      id = $(arg).attr('data-id')
      value = $(arg).is(":checked")
      $(arg).attr('data-id')
      html=$(arg).closest("tr")
      $(arg).closest("tr").remove()
      path = '/users/' + user_id + '/tasks/' + id

       if(value){
         complete = true;
         $('.completed-tasks').append(html)
       }
       else{
         complete = false;
          $('.incompleted-tasks').append(html)
        }

      $.ajax({
        url : path,
        type : 'PUT',
        dataType: "json",
        data: { task: {id: id, complete: value}}
      })
    }

我在我的 index.js

中调用 setXeditable()
$("#all-tasks").html("<%= j render 'index' %>")

setXeditable()

最佳答案

为什么不能从移动行函数添加对 setXeditable() 的调用?

function pressing(arg){
      user_id = $(arg).attr('data-user-id')
      id = $(arg).attr('data-id')
      value = $(arg).is(":checked")
      $(arg).attr('data-id')
      html=$(arg).closest("tr")
      $(arg).closest("tr").remove()
      path = '/users/' + user_id + '/tasks/' + id

       if(value){
         complete = true;
         $('.completed-tasks').append(html)
       }
       else{
         complete = false;
          $('.incompleted-tasks').append(html)
        }

        setXeditable();

      $.ajax({
        url : path,
        type : 'PUT',
        dataType: "json",
        data: { task: {id: id, complete: value}}
      })
    }

关于javascript - 如何在另一个函数之后每次调用javascript函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31790539/

相关文章:

javascript - CallCC 是 goto 的改进版本吗?

javascript - 在我们的 javascript 游戏中触发下一个级别?

ruby-on-rails - Rails - Devise - 登录或注销后重定向到当前页面

ruby-on-rails - 在嵌入式 ruby 中排序

ruby-on-rails - Rails - 用户和管理员的 CRUD,有多少个 Controller ?

javascript - AngularJS 应用程序中出现 "Uncaught ReferenceError: updateClock is not defined"错误

javascript - 我如何使用 jquery 中的类存储元素值

javascript - 带 lodash 的嵌套过滤器用于父子关系

jquery - 使用jquery获取子元素的id并存储在变量中?

jquery - 我如何知道我的选择器在 jQuery 中是正确的