如何从$(document).ready()外部调用函数lol(),例如:
$(document).ready(function(){
function lol(){
alert('lol');
}
});
尝试:
$(document).ready(function(){
lol();
});
简单地说:
lol();
必须在外部的javascript中调用,如:
function dostuff(url){
lol(); // call the function lol() thats inside the $(document).ready()
}
答案 0 :(得分:56)
在窗口对象上定义函数,使其在另一个函数范围内变为全局:
$(document).ready(function(){
window.lol = function(){
alert('lol');
}
});
答案 1 :(得分:37)
在定义函数的块之外,它超出范围,您将无法调用它。
然而,无需在那里定义功能。为什么不简单:
function lol() {
alert("lol");
}
$(function() {
lol(); //works
});
function dostuff(url) {
lol(); // also works
}
你可以全局定义函数,如下所示:
$(function() {
lol = function() {
alert("lol");
};
});
$(function() {
lol();
});
虽然有效但不推荐。如果您要在全局命名空间中定义某些内容,则应使用第一种方法。
答案 2 :(得分:3)
简短版:你不能,它超出了范围。像这样定义你的方法,以便它可用:
function lol(){
alert('lol');
}
$(function(){
lol();
});
答案 3 :(得分:3)
你不需要和那个 - 如果一个函数是在Document.Ready之外定义的 - 但是你想调用它Document.Ready - 你就是这样做的 - 这些答案导致我的方向错误,不要再次输入函数,只是函数的名称。
$(document).ready(function () {
fnGetContent();
});
fnGetContent在这里:
function fnGetContent(keyword) {
var NewKeyword = keyword.tag;
var type = keyword.type;
$.ajax({ .......
答案 4 :(得分:0)
使用jQuery安装Prototype的情况怎么样?我们为jQuery设置了noconflicts?
jQuery(document).ready(function($){
window.lol = function(){
$.('#funnyThat').html("LOL");
}
});
现在我们可以从任何地方调用lol,但是我们是否引入了与Prototype的冲突?