Javascript函数访问

Javascript函数访问,javascript,jquery,Javascript,Jquery,我在$(function(){function parseData(){…})中有一块代码 我还有一个在ready块之外声明的函数。这是外部的,因为我在codebehind ieddlcogories.Attributes.Add(“onchange”,“getDataFields()”)中连接了它 在getDataFields函数中,我需要调用parseData,但它似乎找不到它 如何从就绪块外部访问就绪块中的parseData() (很抱歉,如果某些术语已关闭-我现在使用JS)您应该在$(f

我在
$(function(){function parseData(){…})中有一块代码

我还有一个在ready块之外声明的函数。这是外部的,因为我在codebehind ie
ddlcogories.Attributes.Add(“onchange”,“getDataFields()”)中连接了它

在getDataFields函数中,我需要调用parseData,但它似乎找不到它

如何从就绪块外部访问就绪块中的parseData()


(很抱歉,如果某些术语已关闭-我现在使用JS)

您应该在
$(function(){…})
回调之外声明函数。

您应该在
$(function(){…})
回调之外声明函数。

只需在就绪块之外定义它。由于函数的作用域,它当前无法访问

定义总是可以安全地跳出
$(function(){…})
块,因为没有执行任何操作

$(function() { ... });

function parseData() { ... }

但是,您似乎有一个语法错误:
)}应为
})

只需在就绪块之外定义它。由于函数的作用域,它当前无法访问

定义总是可以安全地跳出
$(function(){…})
块,因为没有执行任何操作

$(function() { ... });

function parseData() { ... }
但是,您似乎有一个语法错误:
)}应为
})

parseData()必须在就绪块中的任何原因?为什么不将其作为顶级功能:

<script type="text/javascript">

function parseData() { ... }

$(document).ready( function() {
   ddl.Categories.....
}
<script>
var parseData;

$(function() { parseData = function () { ... }; });

函数parseData(){…}
$(文档).ready(函数(){
ddl.类别。。。。。
}
parseData()必须在ready块中的任何原因?为什么不将其作为顶级函数:

<script type="text/javascript">

function parseData() { ... }

$(document).ready( function() {
   ddl.Categories.....
}
<script>
var parseData;

$(function() { parseData = function () { ... }; });

函数parseData(){…}
$(文档).ready(函数(){
ddl.类别。。。。。
}

在自执行$(function(){});块之外声明parseData函数

如果在自执行函数中需要引用某些内容,则全局声明该函数,但在自执行函数中定义它:

<script type="text/javascript">

function parseData() { ... }

$(document).ready( function() {
   ddl.Categories.....
}
<script>
var parseData;

$(function() { parseData = function () { ... }; });

另外,全局声明函数或变量是个坏主意。

在自执行$(function(){});块之外声明parseData函数

如果在自执行函数中需要引用某些内容,则全局声明该函数,但在自执行函数中定义它:

<script type="text/javascript">

function parseData() { ... }

$(document).ready( function() {
   ddl.Categories.....
}
<script>
var parseData;

$(function() { parseData = function () { ... }; });

另一方面,全局声明函数或变量是个坏主意。

请看语法,因为我是即兴键入的。@Jeff:如果您想在任何地方访问函数,应该直接公开它们,而不是在
$(…)
块内。否则,这些函数将无法在
$(…)块外访问
。这种行为称为“作用域”。语法是因为我在即兴键入。@杰夫:如果你想在任何地方访问函数,你应该直接公开它们,而不是在
$(…)
块内。否则,这些函数将无法在
$(…)块外访问
。此行为称为“范围”。很抱歉,我不理解。很抱歉,我不理解。那么,我在其他地方也会遇到同样的问题,因为其他东西调用parseData().是的,但是parseData在做什么?除非它在做dom操作,否则它没有理由不能成为顶级功能,这使它对所有脚本都可用,无论它们在何处/何时执行。我只是尝试了一下。我在ready块中定义了一组变量,这使得它很难实现。没有办法吗调用ready块中的函数?全局变量不是一个好主意。但是如果需要它们,请将它们的原始定义放在块外,然后在ready块中设置它们的值。那么,我在其他地方也会遇到同样的问题,因为其他东西调用parseData().是的,但是parseData在做什么?除非它在做dom操作,否则它没有理由不能成为顶级功能,这使它对所有脚本都可用,无论它们在何处/何时执行。我只是尝试了一下。我在ready块中定义了一组变量,这使得它很难实现。没有办法吗要在ready块中调用函数?全局变量不是一个好主意。但是如果需要它们,请将它们的原始定义放在块外,然后在ready块中设置它们的值。