如何在jQuery中重载元素属性
How to reload element attribute inside jQuery droppable()
我有一个库存,每次用户删除一个项目(将其拖到垃圾桶),我检查这个项目是否是堆栈,如果是,则删除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的堆栈,第一次掉落工作,它将属性和html更改为19,但所有其他掉落仍然使用第一次声明的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);
不能正常工作
啊啊啊啊
data('stack-count');
似乎全局保存这个,不会在新的调用
时被替换。attr('data-stack-count');
修复:/
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 防止window.opener.location.href form重载父元素
- 重载& lt; img>元素来自同一来源
- Javascript不会重载父元素
- 如何重载src元素
- 重载/重新查找Jquery元素
- 如何在jQuery中重载元素属性