Javascript函数返回无法使用的值

奥利弗·亚苏纳(Oliver Yasuna)

因此,我试图获取两个数字之间的百分比值。

这是我的代码:

var easeMethod = 'easeOutCubic';        // Mathematical curve.
var easeTime = 1250;                    // In milliseconds.
var easeTime_Fill = easeTime + 500;     // Extra time for fills.

function clip(value, min, max)
{
    //var valueInBoundaries = Math.max(valueMin, Math.min(value, valueMax));

    if(value < min) value = min;
    if(value > max) value = max;

    return value;
}

function rangePercentage(value, min, max)
{
    value = clip(value, min, max);

    return ((value - min) * 100) / (max - min);
}

$('.fill').each(function()
{
    var valueMin = $(this).attr('data-valueMin');
    var valueMax = $(this).attr('data-valueMax');
    var value = $(this).attr('data-value');

    if(typeof value !== typeof undefined && value !== false)
    {
        if(typeof valueMin == typeof undefined || valueMin == false) valueMin = "0";
        if(typeof valueMax == typeof undefined || valueMax == false) valueMax = "100";

        var percentage = rangePercentage(value, valueMin, valueMax);

        $(this).animate({
            width: percentage + "%"
        }, easeTime_Fill, easeMethod);
    }
});

由于某种原因,它将无法正常工作。当我这样做时,alert它给了我正确的百分比,但是当我将其插入到JQuery函数nada中时,就好像它是0。

汤玛士

您的裁剪方法仍然有错误,因此它将每个<max值转换为max值。

function clip(value, min, max){
    //this version may behave weird if you don't pass in numbers
    //so you have to take care of the types!
    //but to me it's more readable than the min-max-version
    return value > min? value < max? value: max: min;

    //this will convert everything to numbers
    return Math.max(min, Math.min(max, value));
}

function rangePercentage(value, min, max){
    //the subtractions convert all inputs to numbers.
    //therefore this version is a bit more tolerant than clipping the value,
    //because we can ensure that we always pass numbers to clip()
    return clip( (value - min) / (max - min) * 100, 0, 100 );
}

$('.fill').each(function(){
    //don't do the same task over and over again, if you don't have to
    var $this = $(this);

    //the `+` converts everything to numbers.*
    //but it's not very flexible when dealing with leading whitespace
    //in such cases you might want to use parseFloat() instead, 
    //or trim() the string first.
    var valueMin = +$this.attr('data-valueMin');
    var valueMax = +$this.attr('data-valueMax');
    var value = +$this.attr('data-value');

    //better check wether you actually have a number, instead of
    //this big bulk of condition wich still doesn't ensure you valid inputs
    if(!isNaN(value)){
        if(isNaN(valueMin)) valueMin = 0;
        if(isNaN(valueMax)) valueMax = 100;

        var percentage = rangePercentage(value, valueMin, valueMax);
        $(this).animate({
            width: percentage + "%"
        }, easeTime_Fill, easeMethod);
    }
});

+转换的一切数字,但与领先在这种情况下空格处理时,它不是很灵活,你可能希望先使用parseFloat()来代替,或修剪()的字符串。

只是为了方便

//to convert everything to numbers, converts NaN's to 0.
function number(value){ return +value || 0 }
function int(value){ return value | 0 } //only last 32 bits (sign + 31 bits)
function uint(value){ return value >>> 0 }  //last 32 bits

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在返回JavaScript值的函数上使用new?

来自分类Dev

JavaScript Fetch无法返回值调用其他函数

来自分类Dev

调用javascript函数并使用匿名函数获取返回值

来自分类Dev

函数无法返回值

来自分类Dev

函数无法返回值

来自分类Dev

无法从函数返回值

来自分类Dev

无法使用函数返回的值分配按钮 ID

来自分类Dev

JavaScript函数的返回值

来自分类Dev

JavaScript函数返回值

来自分类Dev

从Javascript函数返回值,而不使用“ return”

来自分类Dev

如何使用输入字段中的javascript函数返回的值?

来自分类Dev

使用 BeautifulSoup 从 javascript 函数中收集返回值

来自分类Dev

使用javascript获取函数内的返回值

来自分类Dev

无法访问函数返回的值

来自分类Dev

无法从函数内部返回值

来自分类Dev

在函数外使用函数的返回值

来自分类Dev

无法从命名空间的javascript函数在chrome控制台中获取返回值

来自分类Dev

无法从javascript中的函数返回数据

来自分类Dev

从JavaScript中的异步函数返回值?

来自分类Dev

JavaScript函数比较数组中的值并返回

来自分类Dev

设置javascript变量以返回函数的值

来自分类Dev

JavaScript函数中的返回值

来自分类Dev

javascript:从匿名函数返回值

来自分类Dev

如何从外部JavaScript函数返回值

来自分类Dev

Javascript获取内部函数的返回值

来自分类Dev

JavaScript函数调用返回相同的值吗?

来自分类Dev

JavaScript异步函数返回值

来自分类Dev

Javascript-函数返回值

来自分类Dev

Javascript函数:拆分后返回值