【发布时间】: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