2016-04-29 10 views
0

ここには多くの問題が発生しましたが、私はそれらを「検証済み」にする方法を見つけましたが、これは安全ですか?あなたが私にそれを正当化するのを助けることができますか?jQueryを使用しているときにJavascript関数を「定義済み」にする方法は?

$('document').ready(function{ 
    var $demo = $('demo'); 
    $demo.onclick(function runAlpha(){ 
     //do something with alpha 
    }); 
    $demo.onclick(function runBeta() { 
     //do something with beta 
    }); 
}); 

function runAlpha(){} 
function runBeta(){} 

jqueryの外部の関数は空白のままになり、javascriptは定義されていることを認識します。これをより効果的にする方法はありますか?私がjavascriptセクションに何かを追加すると、コードの衝突が起こるでしょうか?またはそれに追加されますか?

+4

以下の定義の関数**はonclickハンドラに渡される関数と同じではない** – nem035

+0

多分私は誤解しているかもしれませんが、質問の文言はちょっと変わっているようです。あなたが達成しようとしていることはまさにそれですか? –

+0

jQueryを実行しているとき(私は最高の熟練した英語のスピーカーではないが)、jqueryを実行している間に関数を定義したい場合は、 –

答えて

3

あなたがしようとしていることについて少し混乱します。このようなjQueryのは、匿名関数を使用することであろう書き込みの通常の方法、:

$('document').ready(function{ 
    var $demo = $('demo'); 
    $demo.on("click", function() { 
     //do something with alpha 
    }); 
    $demo.on("click", function() { 
     //do something with beta 
    }); 
}); 

という名前の関数が必要な場合、あなたはおそらく、このようにそれを行うだろう:

$('document').ready(function{ 
    var $demo = $('demo'); 
    $demo.on("click", runAlpha); 
    $demo.on("click", runBeta); 
    function runAlpha(){ 
     //do something with alpha 
    } 
    function runBeta(){ 
     //do something with beta 
    } 
}); 

あなたがしたいようですね$(document).ready部分の外側でrunAlphaまたはrunBetaを呼び出すことができます。私は通常、これを行うような方法は、次のようになります。

$('demo').trigger("click"); 

あなたは、関数を直接呼び出すクロージャの外側の関数の定義を移動したい場合:

$('document').ready(function{ 
    var $demo = $('demo'); 
    $demo.on("click", function() { 
     //do something with alpha 
    }); 
    $demo.on("click", function() { 
     //do something with beta 
    }); 
}); 

function runAlpha(){ 
    //do something with alpha 
} 
function runBeta(){ 
    //do something with beta 
} 

私はそれを最初に行う個人的に思います私はグローバルな名前空間を「汚染する」のが好きではありませんが、実際にあなたの呼び出しです。

+0

を避けるが、javascriptで定義されるだろうか? –

+0

ああ、私はあなたが今尋ねていることを得る、編集を参照してください。最初のコードブロックを – dave

+0

に追加して、他のオンクリックを実行している間に作成された機能にすべての機能を追加する準備ができましたか? –

関連する問題