1

学ぼうとしている人からの簡単な質問:

私はこれを持っています:

$(function(){$("#topFlag").hover(changeFlag, setFlag ); });

function changeFlag(){
  //some code
 };

 function setFlag(){
  //somecode
 };

そして、それはすべて機能しています(現在)。しかし、私が使用することを期待していたのは:

$(function(){$("#topFlag").hover(changeFlag(), setFlag() ); });

違いは何ですか?なぜchangeFlag()(括弧で)機能しないのですか?これは関数呼び出しではありませんか? 関数にパラメーターを渡したい場合はどうすればよいですか?

洞察(または私が読むことができるドキュメントへのポインタ)に感謝します。私はすでにチェックアウトしました:

http://api.jquery.com/hover/ http://www.w3schools.com/js/js_functions.asp

4

3 に答える 3

8

changeFlag関数です。

changeFlag()その関数を呼び出します。

関数を渡す必要があります。return関数を呼び出してその値を渡す必要はありません。

于 2013-06-13T21:38:03.673 に答える
3

関数名の後に中括弧を追加すると、関数が実行されます

setFlag() ; // calls the function 

しかし、要素の上にカーソルを置いたときに関数を起動したい

イベントの添付時ではなく

于 2013-06-13T21:38:15.753 に答える
0

JavaScript では、関数は変数でもあります。これをパラメーターとして渡すと、実行する関数を送信する必要があります。これを記述すると、yourFunc()代わりにその関数の結果が送信されます。
パラメータを送信するには、これを使用します:

$(function(){$("#topFlag").hover(function(){changeFlag(param1, param2,...)}, function(){setFlag(param1, param2,...)}); });

これにより、関数を呼び出す匿名関数が作成されます。

于 2013-06-13T21:42:19.713 に答える