Javascript jQuery draggable and dropable with data()返回NaN
我一直在玩这段代码,一切似乎都很好。当我将其中一个黄色框拖到红色容器上时,变量Javascript jQuery draggable and dropable with data()返回NaN,javascript,jquery,Javascript,Jquery,我一直在玩这段代码,一切似乎都很好。当我将其中一个黄色框拖到红色容器上时,变量price随数据价格值递增,然后在黄色框离开红色容器时减去 当我再次将它们拖回红色容器上方并导致NaN时,问题就出现了$(“.draggable[数据项=”“+value+”)”)。数据('price')似乎未定义 任何方向正确的帮助都将受到感谢 $(function() { var price = 0, math = '', items = []; function calcPrice(math) {
price
随数据价格
值递增,然后在黄色框离开红色容器时减去
当我再次将它们拖回红色容器上方并导致NaN时,问题就出现了<代码>$(“.draggable[数据项=”“+value+”)”)。数据('price')代码>似乎未定义
任何方向正确的帮助都将受到感谢
$(function() {
var price = 0, math = '', items = [];
function calcPrice(math) {
console.log(items);
$.each( items, function( key, value ) {
if(math == 'add')
price += $(".draggable[data-item='" + value + "']").data('price');
if(math == 'remove')
price -= $(".draggable[data-item='" + value + "']").data('price');
});
$("#droppable").text(price);
}
$(".draggable").draggable({ containment: "#container", scroll: false });
$("#droppable").droppable({
drop: function(e, u) {
items.push(u.draggable.data('item'));
calcPrice('add');
},
out: function(e, u) {
calcPrice('remove');
items.splice($.inArray(u.draggable.data('item', items),1));
}
});
});
541
542
Jsbin:ur代码中有问题的行是
items.splice($.inArray(u.draggable.data('item',items),1))代码>
我已将其更改为
items.splice($.inArray(u.draggable.data('item'),items))代码>
问题已经不存在了你必须检查价格的计算
@estar..我认为问题在于循环引用..你检查过你的控制台日志了吗?啊,太好了。非常感谢。是的,我看到了计算的问题,如果物品在红色容器中反复掉落,每次都会累积起来。你现在也得到了你的选票;)
<div id="container">
<div id="droppable"></div>
<div class="draggable" data-item="1" data-price="541">541</div>
<div class="draggable" data-item="2" data-price="542">542</div>
</div>