当我通过ajax插入数据时,我使用了
$( "#example_wrap" ).load(window.location.href + " #example" );
重新加载一个div,但在这之后,我对列表进行拖动和排序是行不通的,所以我只是用了
sort_table;
$('#example tbody').sortable('destroy');
$('#example tbody').unbind();
sort_table;
排序函数分配给变量sort_table
sort_table =
$( "#example tbody" ).sortable({
axis: 'y',
update: function (event, ui) {
var self = $(this)[0];
var tr = $(self).find('tr');
topnews_a = [];
var order = 1;
$(tr).each(function(){
var content_id = parseInt( $(this).attr('content_id') );
var order_id = order;
topnews_a.push({
content_id: content_id,
order_id: order_id,
});
order++;
});
var topnews_obj = JSON.stringify(topnews_a);
var data_a = {
topnews: topnews_obj
}
$.ajax({
type:"POST",
url: base_url+"topnews/do_order",
data: data_a,
beforeSend:function(){
//$('.clearClassBlock').html('<div class="alert alert-danger alert-dismissable">Select A Section.</div>');
},
complete:function(){
},
success:function(x){
alert('Order Changed Successfully');
},
error:function(x){
}
});
}
});
答案 0 :(得分:0)
第一件事:根据MDN,未命名的函数(分配给变量的函数)应附加到事件以进行回调。
之后
排序函数分配给变量sort_table
一旦将此函数分配给变量,这不是排序函数,它现在是函数表达式,因为定义没有函数关键字作为第一个语句。
当你调用没有()
的变量时,它会返回表达式定义作为你要求变量的值(不调用函数)。
所以你需要调用你的函数表达式。
sort_table();
sort_table
应在您调用之前声明。
此外,您可以参考Microsoft's documentation了解如何命名javascript函数并立即执行它?