我有两个事件:onFocus(saveOld)和OnChange(showPoints)。当用户关注下拉列表时,我使用jquery.data函数来保存下拉列表的旧值。当用户更改下拉列表的值时,我会检查旧值是否大于当前值。如果是这样,我会根据情况调整总数。但这只适用于我在onChange中从.data函数获取旧值后提醒旧值的情况。没有警报没有任何反应。
function showPoints(pointCategory, ddlAmount, name){
old = jQuery.data(document.body,name);
alert(old);
var Points = parseInt($('p#points').html());
if(old > ddlAmount){
diff = old - ddlAmount;
currentPoints = Points + (diff * pointCategory);
}else{
currentPoints = Points - (ddlAmount * pointCategory);
}
$('p#points').html(currentPoints);
}//showPoints
function saveOld(oldAmount, name){
$(document.body).data(name,oldAmount);
}
如果没有showPoints()中的警报,则无法正常工作。出了什么问题?
谢谢你们
编辑:请注意,我已经尝试过警告应该在的this.delay(1000)。仍然无法正常工作
答案 0 :(得分:3)
尝试将onfocus更改为onclick,并将当前值保存到showPoints末尾的.data中,如下所示:
$('p#points').html(currentPoints);
$(document.body).data(name,currentPoints);
我会在showPoints函数中使用局部变量。
答案 1 :(得分:1)
当你发出警报时,你会从元素中失去焦点。因此alert()
案例的情况发生了变化。
所以我会说你保存值onBlur
(当你离开控件时调用。)
答案 2 :(得分:0)
延迟(1000)无济于事,因为它只会增加处理时间,而不会给函数处理更多时间。我会使用x3ro的解决方案并检查函数的调用方式。