我有一个库存,每次用户删除一个项目(将其拖到垃圾桶)时,我会检查这个项目是否为堆栈,如果是,则删除1.
问题是每次用户放弃时堆栈编号保持不变
$('#trash-wrapper').droppable({
accept: ".item",
drop: function(event, e){
// If the trashed item has a stack that is bigger than 1, do not remove the element but remove 1 from the stack and return the item back
if(e.draggable.find('.inventory-stack').data('stack-count') > 1){
var count = e.draggable.find('.inventory-stack').data('stack-count');
e.draggable.find('.inventory-stack').attr('data-stack-count', (count - 1)).html(count - 1);
_ajaxFetch("php/ajax/game/conq-delete-item.php", {dby : 'l', id: e.draggable.attr('data-loot-id')});
}
// Otherwise destory the element
else{
e.draggable.remove();
_ajaxFetch("php/ajax/game/conq-delete-item.php", {dby : 'i', id: e.draggable.attr('data-item-id')});
}
}
});
问题是Count始终保持不变。如果有20个堆栈,第一个drop工作,它将属性和html更改为19,但所有其他drop仍然使用先声明的count变量 - 20,所以它永远不会超过1。
我甚至尝试过
e.draggable.find('.inventory-stack').attr('data-stack-count', (e.draggable.find('.inventory-stack').data('stack-count') - 1)).html(e.draggable.find('.inventory-stack').data('stack-count') - 1);
不起作用
答案 0 :(得分:0)
Ughhhhhh
data('stack-count');
似乎全局保存,并且不会在新呼叫中替换
attr('data-stack-count');
修正了它:/