我有两个事件: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)警报应该在哪里。还是没用

最佳答案

尝试将onfocus更改为onclick,并在showPoints的末尾将当前值保存到.data,如下所示:

$('p#points').html(currentPoints);
$(document.body).data(name,currentPoints);


我会在showPoints函数中使用局部变量。

09-18 03:40