我有两个表,当我点击相应的复选框时,我会在它们之间移动特定的行。 除了复选框,由于x-editable库,每行包含内联编辑字段。
问题是,当我将某行移到另一个表格中时,我无法再编辑其字段。似乎setXeditable()只运行一次,然后在调用另一个java脚本后它不会被执行。我必须重新加载页面才能再次编辑这些字段。我该如何解决?
的application.js
220.3
我在 index.js
中调用setXeditable()//= 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}}
})
}
答案 0 :(得分:2)
为什么不能从移动行功能中添加对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}}
})
}