找不到我的javascript函数
我有以下资料:找不到我的javascript函数,javascript,jquery,Javascript,Jquery,我有以下资料: $(function () { $.ajaxSetup({ cache: false }); var dialogs = {}; var formSubmitHandler = function (e) { ... } } 然后在另一个脚本中,我尝试调用 function dialogClick(link) { $.get(viewUrl + parameters) .success(fun
$(function () {
$.ajaxSetup({ cache: false });
var dialogs = {};
var formSubmitHandler = function (e) {
...
}
}
然后在另一个脚本中,我尝试调用
function dialogClick(link) {
$.get(viewUrl + parameters)
.success(function (content) {
if (content.match(/^[eE]rror/)) {
mvcOnFailure(data)
} else {
$.modal({
title: title,
closeButton: true,
content: content,
width: false,
resizeOnLoad: true
}).find('form').submit(formSubmitHandler).end();
}
})
请注意,为了便于阅读,我删掉了脚本的一部分。没有显示以下错误的脚本错误:
在第二个脚本中,我收到一条错误消息,在Internet Explorer中显示“SCRIPT5009:'formSubmitHandler'未定义”
我是不是叫错了?我以为函数是全局的,当我检查时
它所在的脚本附加到页面。不,它不是全局的;您的“formSubmitHandler”函数在您发布的第一个示例代码块中的“ready”回调中声明。因此,它是该函数的私有函数
如果你真的想要一个全局函数,你可以做的是:
window['formSubmitHandler'] = formSubmitHandler;
在第一个函数中。或者,您可以将其设置为jQuery“全局”函数:
$['formSubmitHandler'] = formSubmitHandler;
在这种情况下,您将以
$的形式访问它
$(function () {
$.ajaxSetup({ cache: false });
var dialogs = {};
}
var formSubmitHandler = function (e) {
...
}
formSubmitHandler
仅存在于您声明的函数范围内,因为您使用了var
变量
您需要:
声明对话框在同一范围内单击
使用window.formSubmitHandler
或只使用函数formSubmitHandler(){}
formSubmitHandler
是在对话框click()
函数不可见的范围内声明的函数
所以
- 要么将
formSubmitHandler
声明为global
- 或者定义函数
对话框单击文档内的
。就绪
函数(并且formSubmitHandler
是可访问的,因为它在父范围内)