我的<head>
$('document').ready(function () {
function shout(msg) {
alert(msg);
}
});
<body>
但我得到function shout not defined
。为什么?我使用的是Firefox 25。
SO有许多相似的问题,我已经尝试了所有但没有帮助。除了this一个,这可能解决了我的问题。我没有得到答案所说的。请任何人详细说明他在说什么关于两个小提琴,答案和问题完全相同,除了左侧栏上的一些属性更改:onload
和No wrap-in <head>
或者可能是什么问题?
答案 0 :(得分:1)
您的功能是visible
,其中附件是document.ready
。如果将函数移出document.ready
,那么它将在全局范围内访问。
function shout(msg)
{
alert(msg);
}
答案 1 :(得分:1)
您的函数是在匿名函数内定义的,因此它的名称仅限于该范围。如果您尝试从无法使用的按钮的onclick
属性访问它,因为其中的名称会在全局范围内显示。
您有两种解决方案:
一种是在$(document).ready()
之外定义函数,因此它将在全局范围内。
另一种是使用jQuery而不是内联属性绑定您的单击处理程序:
$(document).ready(function() {
$("#somebutton").click(function() {
shout("Button was clicked");
});
function shout(msg) {
alert(msg);
}
});
答案 2 :(得分:0)
$('document').ready(function {
shout('message');
});
function shout(msg) {
alert(msg);
}
答案 3 :(得分:0)
因为函数包含在父函数中。函数内部的范围在其外部不可用。
将其分开 -
function shout(msg) {
alert(msg);
}
$('document').ready(function{
shout('AWESOME');
});