【问题标题】:jQuery Calculations not working outjQuery 计算不起作用
【发布时间】:2011-08-13 03:14:10
【问题描述】:

我正在使用 jQuery Calculator 插件 (http://www.pengoworks.com/workshop/jquery/calculation/calculation.plugin.htm),在计算纸杯蛋糕的成本时偶然发现了一个小问题。

我需要 19 英镑购买 1-12 件产品,需要 37 英镑购买 13-24 件产品,或者需要 1.45 英镑购买 25 件以上产品,但我不知道如何更改总和以显示这一点。

有人可以帮忙吗?

到目前为止我的代码...

var bIsFirebugReady = (!!window.console && !!window.console.log);

$(document).ready(
    function (){
        // update the plug-in version
        $("#idPluginVersion").text($.Calculation.version););


        // bind the recalc function to the quantity fields
        $("input[name^=qty_item_]").bind("keyup", recalc);
        // run the calculation function now
        recalc();

        // automatically update the "#totalSum" field every time
        // the values are changes via the keyup event
        $("input[name^=sum]").sum("keyup", "#totalSum");

        // automatically update the "#totalAvg" field every time
        // the values are changes via the keyup event
        $("input[name^=avg]").avg({
            bind:"keyup"
            , selector: "#totalAvg"
            // if an invalid character is found, change the background color
            , onParseError: function(){
                this.css("backgroundColor", "#cc0000")
            }
            // if the error has been cleared, reset the bgcolor
            , onParseClear: function (){
                this.css("backgroundColor", "");
            }
        });

        // automatically update the "#minNumber" field every time
        // the values are changes via the keyup event
        $("input[name^=min]").min("keyup", "#numberMin");

        // automatically update the "#minNumber" field every time
        // the values are changes via the keyup event
        $("input[name^=max]").max("keyup", {
            selector: "#numberMax"
            , oncalc: function (value, options){
                // you can use this to format the value
                $(options.selector).val(value);
            }
        });

        // this calculates the sum for some text nodes
        $("#idTotalTextSum").click(
            function (){
                // get the sum of the elements
                var sum = $(".textSum").sum();

                // update the total
                $("#totalTextSum").text("$" + sum.toString());
            }
        );

        // this calculates the average for some text nodes
        $("#idTotalTextAvg").click(
            function (){
                // get the average of the elements
                var avg = $(".textAvg").avg();

                // update the total
                $("#totalTextAvg").text(avg.toString());
            }
        );
    }
);

function recalc(){


    $("[id^=total_item]").calc(
        // the equation to use for the calculation

        if(qty > 24){

            "qty * price",
        // define the variables used in the equation, these can be a jQuery object
        {
            qty: $("input[name^=qty_item_]"),
            price: $("[id^=price_item_]"),

        },

        }else{

            "qty = fee",
        // define the variables used in the equation, these can be a jQuery object
        {
            qty: $("input[name^=qty_item_]"),
            fee: ($("input[name^=qty_item_]").val() < 13) ? 19 : 37 ,

        },

        }




        // define the formatting callback, the results of the calculation are passed to this function
        function (s){
            // return the number as a dollar amount
            return "£" + s.toFixed(2);
        },
        // define the finish callback, this runs after the calculation has been complete
        function ($this){
            // sum the total of the $("[id^=total_item]") selector
            var sum = $this.sum();

            $("#grandTotal").text(
                // round the results to 2 digits
                "£" + sum.toFixed(2)
            );
        }
    );
}

我什至尝试过...

    function recalc(){

        // define the variables used in the equation, these can be a jQuery object
        var qty = $("input[name^=qty_item_]");
        var price = $("[id^=price_item_]");
        var fee = ($("input[name^=qty_item_]").val() < 13) ? 19 : 37;

    $("[id^=total_item]").calc(
        // the equation to use for the calculation

        if(qty > 24){

            "qty * price",


        }else{

            "qty = fee",

        }

【问题讨论】:

  • 您好,我想帮忙。您介意在此处或使用jsFiddle 也显示HTML吗?谢谢。
  • 不知道如何使用jsFiddle,粘贴上面的代码看起来很乱……有没有其他可以在线使用的代码工具?
  • 其实...我想我解决了...jsfiddle.net/Q3Nwd
  • 用 HTML 填充 HTML 区域,用 JS 代码填充 Javascript。在左侧选择 Jquery 作为框架并通过管理资源添加此 url pengoworks.com/workshop/jquery/calculation/…,按保存并在此处粘贴 jsFiddle URL。

标签: jquery jquery-plugins jquery-calculation


【解决方案1】:

我本人对 jQuery 的 calculation plugin 很感兴趣,因此我设法修复了您的源代码作为练习。检查它是否按照您喜欢的方式工作并仔细阅读代码。

链接:http://jsfiddle.net/Q3Nwd/3/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 2014-10-04
    相关资源
    最近更新 更多