javascript - 将值作为 js 字典返回,某些值未定义?
问题描述
我试图从 JS 函数返回多个变量,所以我将需要返回的变量放在字典中,但是当我稍后调用它们时它们不存在?
function event_listeners(){
// Event Listners
$("#add_calculation_button").on('click', function()
{
save_calculation();
});
$("#owned_acres").on('input',function()
{
$("#result_acres_numerator").text( $(this).val());
calculate_NRI();
});
$("#total_acres").on('input',function()
{
$("#result_acres_denominator").text( $(this).val());
calculate_NRI();
});
$("#cross_unit_factor").on('change',function()
{
if(typeof(was_previously_invalid) == "undefined")
{
was_previously_invalid = false
}
if(was_previously_invalid == false)
{
$(this).removeClass("is-invalid");
}
$("#result_cross_unit").text(display($(this).val()));
cross_unit = convert($(this).val())
was_previously_invalid = false
calculate_NRI();
});
$("#ownership_factor").on('change',function()
{
if(typeof(was_previously_invalid) == "undefined")
{
was_previously_invalid = false
}
if(was_previously_invalid == false)
{
$(this).removeClass("is-invalid");
}
$("#result_ownership").text(display($(this).val()));
ownership = convert($(this).val())
was_previously_invalid = false
calculate_NRI();
});
$("#royalty_rate").on('change',function()
{
if(typeof(was_previously_invalid) == "undefined")
{
was_previously_invalid = false
}
if(was_previously_invalid == false)
{
$(this).removeClass("is-invalid");
}
$("#result_royalty_rate").text(display($(this).val()));
royalty = convert($(this).val())
console.log(royalty)
was_previously_invalid = false
calculate_NRI();
});
$("#decimal").on('change',function() {});
$("#percentage").on('change',function() {});
$("#cross_unit_yes").on('change',function()
{
$("#cross_unit_entry_box").show();
$("#cross_unit_results_box").show();
calculate_NRI();
});
$("#cross_unit_no").on('change',function()
{
$("#cross_unit_entry_box").hide();
$("#cross_unit_results_box").hide();
$("#result_cross_unit").text(1);
$("#cross_unit_factor").val(1);
calculate_NRI();
});
$("#show_total_yes").on('change',function()
{
$("#total_history_box").show();
$("#total_history_box").addClass("d-flex");
});
$("#show_total_no").on('change',function()
{
$("#total_history_box").hide();
$("#total_history_box").removeClass("d-flex");
});
$("#divide_out_yes").on('change',function() {alert("Yes!");});
$("#divide_out_no").on('change',function() {alert("No!");});
$("#brp_royalty_rate").on('change',function() {alert("BRP Royalty Rate");});
$("#coval_royalty_rate").on('change',function() {alert("Coval Royalty Rate");});
var dictionary_of_converted_nums = {
Royalty: royalty,
Cross_Unit: cross_unit,
Ownership: ownership,
};
return dictionary_of_converted_nums;
}
然后当我尝试调用每个单独的返回变量时
listeners = event_listeners();
try
{
cross_unit_factor = parseFloat(listeners.Cross_Unit).text();
}
catch(err)
{
cross_unit_factor = 1;
}
结果应该让 cross_unit_factor 成为 return 语句中的 Cross_Unit 变量。但由于捕获错误,我得到的只是 1
解决方案
推荐阅读
- c++ - DirectShow 在 Win7/Win10 上出现黑框和 0x80070005 失败
- scroll - vis.js时间轴自动滚动功能
- python - 将 .txt 文件保存在 Python 中的另一个文件夹中
- xcode - Xcode XCUITest XCUICoordinate 不适用于按下和/或拖动
- c# - C# 从另一个表单创建类的新实例
- c# - 如何获取xml文件的编码?
- javascript - 为什么渲染没有返回任何内容?
- mongodb - 谷歌云kubernetes引擎外部ip
- jasperserver - JasperServer 内容查看引发索引超出范围异常
- python - 如何在我的 python discord 音乐机器人中创建断开连接计时器?