Ok.. after some tweaking, I found a solution. In the delete function, I am adding a class (deleted) to the li (gs_w). Then in savegs function, I am checking if there is a class named (deleted) there. If so, then exclude it from saving. Its funny; but works!
$(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
}
});
}