我需要一些帮助在同一页面上运行两个jquery.calculation,在我的例子中只有第二个表正在工作,我已经添加了脚本2x并重命名了所有元素但是它不起作用。
当我删除第二个脚本时,第一个脚本正在运行。 当我添加第二个脚本时,第一个脚本会停止。
我理解这两个脚本需要合并,但我真的不知道如何。
谢谢。
这是一个例子: jsfiddle example
<script>
$(document).ready(function() {
$("#idPluginVersion").text($.Calculation.version);
$("[name^=qty_]").bind("change keyup", recalc);
$("[name^=aantal_]").bind("change keyup", recalc);
$("[name^=price_]").bind("change keyup", recalc);
$("[name^=bedrag_]").bind("change keyup", recalc);
recalc();
});
function recalc() {
$("[id^=total_item]").calc(
"((qty * price) + (aantal * bedrag))", {
qty: $("[name^=qty_]"),
aantal: $("[name^=aantal_]"),
price: $("[id^=price_]"),
bedrag: $("[id^=bedrag_]")
},
function(s) {
return s.toFixed(2);
},
function($this) {
var sum = $this.sum();
$("#subTotal").val(sum.toFixed(2));
});
}
</script>
<script>
$(document).ready(function() {
$("#idPluginVersion").text($.Calculation.version);
$("[name^=qty2_]").bind("change keyup", recalc);
$("[name^=aantal2_]").bind("change keyup", recalc);
$("[name^=price2_]").bind("change keyup", recalc);
$("[name^=bedrag2_]").bind("change keyup", recalc);
recalc();
});
function recalc() {
$("[id^=total2_item]").calc(
"((qty2 * price2) + (aantal2 * bedrag2))", {
qty2: $("[name^=qty2_]"),
aantal2: $("[name^=aantal2_]"),
price2: $("[id^=price2_]"),
bedrag2: $("[id^=bedrag2_]")
},
function(s) {
return s.toFixed(2);
},
function($this) {
var sum = $this.sum();
$("#subTotal2").val(sum.toFixed(2));
});
}
</script>
答案 0 :(得分:1)
onclick
函数,您必须将this
作为参数传递,如下所示:onclick="recalc(this)"
。
<script>
$(document).ready(function() {
$("#idPluginVersion").text($.Calculation.version);
$(".qty").bind("change keyup", function(event) {
recalc($(this));
});
});
function recalc(curr) {
var close = $(curr).closest("table");
$(close).find(".total_item").calc(
"((qty * price) + (aantal * bedrag))", {
qty: $(close).find(".qty"),
aantal: $(close).find(".aantal"),
price: $(close).find(".price"),
bedrag: $(close).find(".bedrag")
},
function(s) {
return s.toFixed(2);
},
function($this) {
var sum = $this.sum();
$(close).find(".subTotal").val(sum.toFixed(2));
});
}
</script>
编辑:获得&#34; 0.00&#34;默认情况下,在您的subTotal字段中,只需将其作为值添加到这两个输入中,如下所示:
<input id="subTotal" class="subTotal" style="text-align:right;" type="text" name="SubTotal" readonly="readonly" size="7" value="0.00" />
<input id="subTotal2" class="subTotal" style="text-align:right;" type="text" name="SubTotal2" readonly="readonly" size="7" value="0.00" />