我正在使用jQuery网格,并保存在数据库中的职位。我也有一个普通的添加新按钮来添加新的网格程序和删除按钮在每个网格程序中删除它。当用户移动、添加或删除时,我使用ajax调用。数据库中有一个user_id和一个jsonstring字段。当用户拖动或单击delete/add时,我将获取所有gridsters,创建一个json字符串并将其保存到数据库中。
添加新代码:
$(document).on('click', '.add-new', function(){
gridster.add_widget(html); // html code for GS is saved in html variable
savegs();
})删除代码
$(document).on('click', 'a.ak-delete', function(){
gridster.remove_widget($(this).parents('li.gs_w'));
// I am calling the same save function for delete
savegs();
})保存网格代码:
function savegs(){
var saveJson = "";
$('.gridster > ul > li.gs_w').each(function (){
var $item = $(this);
var col = $item.data('col');
var row = $item.data('row');
var sizex = $item.data('sizex');
var sizey = $item.data('sizey');
var saveJson += -------- -------;// generate json
});
// then i generate a json string in the loop above
}添加新功能运行得很好。但是删除有个问题。它正在销毁该项目,但仍然在每个功能中得到它。所以它被保存在数据库中。有人能说出问题是什么吗?
谢谢。
发布于 2013-11-12 08:54:02
好的..。经过一些调整,我找到了一个解决办法。在delete函数中,我向li (gs_w)添加了一个类(已删除)。然后,在savegs函数中,我检查那里是否有一个名为(已删除)的类。如果是这样,那么将其排除在储蓄之外。这很有趣,但很管用!
$(document).on('click', 'a.ak-delete', function(){
$(this).parents('li.gs_w').addClass('deleted');
gridster.remove_widget($(this).parents('li.gs_w'));
savegs();
})
function savegs(){
var saveJson = "";
$('.gridster > ul > li.gs_w').each(function (){
if (!$(this).hasClass("deleted")) {
var $item = $(this);
var col = $item.data('col');
var row = $item.data('row');
var sizex = $item.data('sizex');
var sizey = $item.data('sizey');
var saveJson += -------- -------;// generate json
}
});
}https://stackoverflow.com/questions/19924347
复制相似问题