gpt4 book ai didi

javascript - 在 $(document).ready() 函数中设置的 jQuery 值

转载 作者:行者123 更新时间:2023-11-29 16:21:40 25 4
gpt4 key购买 nike

我想在 DOM 完全加载后为对象设置值。问题是,在从文本框调用 OnBlurOnFocus 事件后,我得到一个空指针异常。我做错了什么?

JavaScript:

$(document).ready(function () {
var sumThursdayHrs = $('span[id*="lblThursdayHrs"]').last()
});

var tempThursdayHrs = 0.0;
function BlurThursdayHrs(sender, args) { sumThursdayHrs.text(tempThursdayHrs + sender.get_value()); }
function FocusThursdayHrs(sender, args) { tempThursdayHrs = sumThursdayHrs.text() - sender.get_value(); }

标记:

<telerik:RadNumericTextBox ID="txtThursdayHrs" runat="server" NumberFormat-DecimalDigits="1"
Width="25px" MinValue="0" Type="Number" DbValue='<%# Eval("ThursdayHrs") %>'>
<ClientEvents OnBlur="BlurThursdayHrs" OnFocus="FocusThursdayHrs" />
</telerik:RadNumericTextBox>

错误:

Microsoft JScript runtime error: 'sumThursdayHrs' is undefined

最佳答案

正如您在标题中所说,这些值是在函数(就绪事件处理程序函数)中设置的。但是 JavaScript 具有函数作用域,并且当您使用 var 关键字将 sumThursdayHrs 声明为本地(不是说“私有(private)”)变量时,它在外部是未定义的。两种可能:

  • 使 sumThursdayHrs 成为全局变量(删除“var”)(并最终在外部声明)。请注意,应尽可能避免使用全局变量,以防止命名冲突和冲突
  • 或者将所有使用它的函数都放在同一个作用域中。请注意,这些功能也将不再全局可用,因此您需要在相同的上下文中设置模糊/焦点处理程序(正如 Patrick Scott 所建议的)。

关于javascript - 在 $(document).ready() 函数中设置的 jQuery 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10199085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com