gpt4 book ai didi

jquery - document.ready 中声明的函数未定义?

转载 作者:行者123 更新时间:2023-12-01 00:52:28 27 4
gpt4 key购买 nike

如果我在 document.ready 中声明一个函数,则会收到错误。像这样

$(document).ready(function(){
function updateSizeOptions()
{
alert("updateSizeOptions");
}

var jGrid = $("#list_main");
jGrid.jqGrid({
url:'db.php?ajaxOp=getData',
colModel:[
$.extend(true,
{ name:'shape_id'
,index:'shape_id'
,edittype:'select'
,formatter:'select'
,editoptions: { onclick:"javascript:updateSizeOptions();" }
}
,{}
]
....
});

它将给出错误:“ReferenceError:updateSizeOptions 未定义”。
但是如果我将函数移到 document.ready 之外,一切都会正常。
像这样

function updateSizeOptions()
{
console.debug("updateSizeOptions");
}

$(document).ready(function(){
var jGrid = $("#list_main");
....

为什么?

最佳答案

因为在 Javascript 中,在其他函数中声明的函数是本地引用,并且在其父函数的范围之外不可见。如果您想让 updateSizeOptions 函数全局可访问,您需要在全局命名空间中分配对它的引用,例如 window 属性:

window.updateSizeOptions = updateSizeOptions;

关于jquery - document.ready 中声明的函数未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13455811/

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