我创建了一个文档,它加载了一个.js文档,该文档具有我创建的一些JQuery函数。我想使用firebug控制台在我的html文档上快速测试这些函数的功能。但当我尝试在控制台中调用这些函数时,我没有得到任何响应。
例如:
-
我有一个index.html,它调用我的JS:
<script src="jquery.js" type"text/javascript"></script> <script src="myfunctions.js" type="text/javascript"></script>
-
Myfuntions.js中定义了以下内容:
function showAbout(){ $('div#about').show("slow"); $('.navbar #about-button').attr('disabled', true); }
问题:
当我尝试从index.html上的控制台调用showAbout
或showAbout()
时,我没有得到任何更改。然而,当我直接从控制台调用$('div#about').show("slow");
或$('div#about').show("slow");
时,我会得到预期的行为
从控制台调用用户定义函数的正确方法是什么?
如果在全局范围内定义了showAbout
,则应该能够在控制台中编写showAbout();
并查看结果。如果没有,那么您可能将函数放入范围函数中,如下所示:
(function() {
function showAbout() {
}
})();
如果是这样,对您有好处,您已经避免创建全局变量/函数。但这确实意味着你不能从控制台访问这些函数,因为控制台只能访问全局范围。
如果你想导出其中的任何一个,以便从控制台使用它们(可能只是暂时的,用于调试),你可以这样做:
(function() {
window.showAbout = showAbout;
function showAbout() {
}
})();
这显式地将showAbout
属性放在引用函数的全局对象(window
)上。然后控制台中的showAbout();
将工作。
您的showAbout()
可能不在全局范围内。
它可能由$(document).ready()
代码封装,其作用域仅限于该函数。
为了测试,您可以在下面添加。。。
window.showAbout = showAbout;
一旦定义了函数,就可以从控制台调用showAbout()
。