我有一个JavaScript的特定问题。当我将值打印到控制台时,它显示一切正常。但是在html中它显示旧值,直到我选择另一个项目而不是刷新第一个项目。以下是js和html代码:
HTML
onmouseover="OrderItem.setTotalPrice(event,this,'{{ menu_item.id }}')"
JS
setTotalPrice:function(event,a_htmlCaller, a_iMenuItemID){
item_total = OrderItem.Topping._order_toppings.find(function(a_oOTopp){
return parseInt(a_oOTopp.iid) == parseInt(a_iMenuItemID);}.bind(this));
var total_price = 0.00;
var base_price = parseFloat($('pz-mitem-p-'+a_iMenuItemID).value);
var _html = '<div class="tot-price-item"><b>Item Price</b>: ';
if(item_total){
// go into item details but with no changes
if(item_total.toppings.tot_price.length == 1 && item_total.toppings.tot_price[0].length == 0){
total_price += base_price;
_html += '' + total_price;
}else{
for(var i=0; i < item_total.toppings.tot_price.length; i++){
// total_price += parseFloat(item_total.toppings.tot_price[i][0]);
_html += '<div>' + (parseFloat(item_total.toppings.tot_price[i][0]).toFixed(2)).toString() + '</div>';
}
}
}else{
total_price += base_price;
_html += '' + total_price;
}
_html += '</div>';
Tips.add(
a_htmlCaller,
event,
_html,
{
className:'rounded',
stem: true,
tipJoint: [ 'left', 'middle' ],
target:a_htmlCaller,
targetJoint: null//[ 'right', 'right' ]
}
);
},
编辑:添加了Asker在评论中提供的代码。添加了格式。
提示:不要在评论中发布代码,而是将其作为原始问题的编辑发布,因为它使阅读更容易,而不是在完全没有格式化的评论中出现大问题。
for(var i=0; i < item_total.toppings.tot_price.length; i++) {
//total_price += parseFloat(item_total.toppings.tot_price[i][0]);
_html += '<div>' + (parseFloat(item_total.toppings.tot_price[i][0]).toFixed(2)).toString() + '</div>';
test = parseFloat(item_total.toppings.tot_price[i][0]).toFixed(2);
console.log(test);
}