【发布时间】:2013-04-04 22:56:30
【问题描述】:
我正在尝试将直接的 javacript 函数转换为使用 jQuery .click 触发
我没有收到任何输出错误,但它不会在 jsfiddle 上执行计算。
var form = document.product_form_top;
function process(v) {
var value = parseInt(document.getElementById('item_qty').value);
value += v;
document.getElementById('item_qty').value = value.toFixed(0);
}
function calculate() {
form.cubicYards.value = (form.length.value / 3) * (form.width.value / 3) * (form.depth.value / 35);
document.getElementById('yards').innerHTML = finaloutput
var number = parseFloat(form.item_qty.value);
var finaloutput = number.toFixed(0);
form.item_qty.value = form.cubicYards.value * 14.7; //calculate yards
var number = parseFloat(form.cubicYards.value);
var finaloutput = number.toFixed(0);
document.getElementById('item_qty').innerHTML = finaloutput
form.weightPounds.value = (form.length.value / 3) * (form.width.value / 3) * (form.depth.value * 21);
form.weightPounds.value * 700;
var number = parseFloat(form.weightPounds.value);
var finaloutput = number.toFixed(0)
document.getElementById('pounds').innerHTML = finaloutput
}
这是一个 jsfiddle http://jsfiddle.net/4L4St/8/
这是一个使用 onclick="calculate(); 在按钮上运行函数的工作版本。我宁愿使用 jQuery 的 .click 函数来触发它。
http://spartonenterprises.com/store/playground-mulch
另外,我正在使用 toFixed(0) 删除多余的小数点,并且在使用 firebug 检查时它似乎可以工作,但可见的 html 显示小数点。奇怪的?
【问题讨论】:
-
您真的需要花一些时间在DRYing 上编写该代码。它会帮助你和每个想要回答的人。看看一个简单的改变可以对你的代码的可读性做些什么:gist.github.com/elclanrs/5315134。加上适当的缩进和间距。
-
谢谢。我会尝试更好地格式化它。
-
删除行
function calculate() {及其对应的}- 该函数永远不会被调用;您需要将该函数的内容直接放在传递给.click()的匿名函数中。然后,当您单击此处显示的按钮时,您的代码将运行:jsfiddle.net/nnnnnn/4L4St/2,您可以开始修复控制台中出现的实际错误(如Uncaught TypeError: Cannot read property 'cubicYards' of undefined)。 -
在您的 jsfiddle 代码中,您在 click 事件中定义了一个函数,然后在其中定义了另一个函数,并且您不在代码中调用它,使用 $(document).ready(function() {}) 和修复你的代码
标签: javascript jquery innerhtml