Javascript 固执

Javascript 固执,javascript,Javascript,我创建了两组代码。两者看起来都一样,但一个在工作,一个不在工作 它不起作用了 正在工作 工作意味着当你点击“其他”时,会打开一个新的文本字段。不工作意味着它不工作 有什么区别 <div class="rButtons"> <input type="radio" name="numbers" value="10" onclick="uncheck();" />10 <input type="radio" name="numbers" value="20

我创建了两组代码。两者看起来都一样,但一个在工作,一个不在工作

它不起作用了

正在工作

工作意味着当你点击“其他”时,会打开一个新的文本字段。不工作意味着它不工作

有什么区别

<div class="rButtons">
    <input type="radio" name="numbers" value="10" onclick="uncheck();" />10
    <input type="radio" name="numbers" value="20"  onclick="uncheck();" />20
    <input type="radio" name="numbers" value="other" onclick="check(this);"/>other
    <input type="text" id="other_field" name="other_field" onblur="checktext(this);"/>
</div>

10
20
其他
之所以发生这种情况,是因为在方法中,JavaScript代码包含在
onLoad
方法中,该方法“关闭”该方法中的所有函数

原语:

之所以会发生这种情况,是因为在方法中,JavaScript代码位于
onLoad
方法中,该方法“关闭”该方法中的所有函数

原语:


在第一种情况下,函数是在
load
事件处理程序中定义的(看看左侧,第一个select元素中的
onLoad
)。这意味着函数不是全局函数,内联事件处理程序无法找到它们(错误消息:
uncaughtreferenceerror:check未定义
)。在第二种情况下,脚本直接放在头部(
no wrap(head)
),因此是全局的。JSFIDLE和其他任何工具一样,在使用之前必须熟悉它。你的意思是,一个
小提琴
隐藏输入显示,另一个不显示?@FelixKling你说得对。。你能解释一下我如何在我的网站上使用工作小提琴吗?只需将代码添加到你的页面。您可以在JSFIDLE中查看结果面板的源代码,并了解它们是如何实现的。@FelixKling javascript代码在这个文件“functions.js”中,上面一行在head中。。但这在我的网站上仍然不起作用??在第一种情况下,函数是在
load
事件处理程序中定义的(看左侧,它在第一个select元素中表示
onLoad
)。这意味着函数不是全局函数,内联事件处理程序无法找到它们(错误消息:
uncaughtreferenceerror:check未定义
)。在第二种情况下,脚本直接放在头部(
no wrap(head)
),因此是全局的。JSFIDLE和其他任何工具一样,在使用之前必须熟悉它。你的意思是,一个
小提琴
隐藏输入显示,另一个不显示?@FelixKling你说得对。。你能解释一下我如何在我的网站上使用工作小提琴吗?只需将代码添加到你的页面。您可以在JSFIDLE中查看结果面板的源代码,并了解它们是如何实现的。@FelixKling javascript代码在这个文件“functions.js”中,上面一行在head中。。我的网站上仍然没有这个功能??哇。。。如何在我的编码中使用它??因为在您的网站上使用JSFIDLE代码并不简单。@Ashis JSFIDLE用于测试小代码片段以进行健全性测试,而不是用于将整个网站粘贴到并运行。@jbabey我已经知道您告诉我的。。。我没有把我的网站贴在那里,只是一段代码。。javascript代码在这个文件“functions.js”中,上面的一行在head中。。我的网站仍然无法运行??你如何测试你的页面?您是否在单独的浏览器窗口中查看它?哇。。。如何在我的编码中使用它??因为在您的网站上使用JSFIDLE代码并不简单。@Ashis JSFIDLE用于测试小代码片段以进行健全性测试,而不是用于将整个网站粘贴到并运行。@jbabey我已经知道您告诉我的。。。我没有把我的网站贴在那里,只是一段代码。。javascript代码在这个文件“functions.js”中,上面的一行在head中。。我的网站仍然无法运行??你如何测试你的页面?您是否在单独的浏览器窗口中查看它?
function onLoad() {
   function func1() { ... }
}

func1();  // out of scope: will cause an error