たとえば、$(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()
}
別の関数スコープ内からグローバルにするために、ウィンドウオブジェクトで関数を定義します。
$(document).ready(function(){
window.lol = function(){
alert('lol');
}
});
関数が定義されているブロックの外では、スコープ外にあり、呼び出すことはできません。
ただし、そこで関数を定義する必要はありません。なぜ単純ではない:
function lol() {
alert("lol");
}
$(function() {
lol(); //works
});
function dostuff(url) {
lol(); // also works
}
couldこのようにグローバルに関数を定義します:
$(function() {
lol = function() {
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({ .......
ショートバージョン:できません。範囲外です。次のようにメソッドを定義して、利用できるようにします。
function lol(){
alert('lol');
}
$(function(){
lol();
});
PrototypeがjQueryと共にインストールされ、jQueryに競合が設定されていない場合はどうですか?
jQuery(document).ready(function($){
window.lol = function(){
$.('#funnyThat').html("LOL");
}
});
これでどこからでもlolを呼び出すことができますが、Prototypeとの競合が発生しましたか?