我有两个表格,当我点击相应的复选框时,我会在其中移动特定的行。 由于 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/