如何从外部调用$(document).ready中的函数
如何从$(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() }
在window对象上定义函数,使其在另一个函数范围内变为全局:
$(document).ready(function(){ window.lol = function(){ alert('lol'); } });
在定义函数的块之外,它超出了范围,您将无法调用它。
但是,没有必要在那里定义function。 为什么不简单:
function lol() { alert("lol"); } $(function() { lol(); //works }); function dostuff(url) { lol(); // also works }
您可以像这样全局定义函数:
$(function() { lol = function() { alert("lol"); }; }); $(function() { lol(); });
这有效但不推荐。 如果要在全局命名空间中定义某些内容,则应使用第一种方法。
简短版本:你不能,它超出了范围。 像这样定义你的方法,以便它可用:
function lol(){ alert('lol'); } $(function(){ lol(); });
你不需要和那个 – 如果一个函数是在Document.Ready之外定义的 – 但你要调用它Document.Ready – 你就是这样做的 – 这些答案导致我走向了错误的方向,不要再次输入函数,只是函数的名称。
$(document).ready(function () { fnGetContent(); });
fnGetContent在这里:
function fnGetContent(keyword) { var NewKeyword = keyword.tag; var type = keyword.type; $.ajax({ .......
使用jQuery安装Prototype的情况怎么样?我们为jQuery设置了noconflicts?
jQuery(document).ready(function($){ window.lol = function(){ $.('#funnyThat').html("LOL"); } });
现在我们可以从任何地方调用lol,但是我们是否引入了与Prototype的冲突?