2012-04-01 4 views
2

関数が返す関数に応じて、何かをクリックして変数を宣言したときにJavaScriptでvarを宣言するにはどうすればよいですか。onclickの中に変数を宣言しますか?

何か

onclick="var varable = somefunction(); " 

ように私は、その関数を実行するためのonclick内の変数を比較になります。したがって、変数がtrueの場合は関数が実行され、falseの場合は戻ります。

どのようにこれらのことをjsで行うことができますか?

+1

ある関数を実行して値を返し、その値に基づいて別の関数を呼び出す(または呼び出さない)のですか? –

+0

Sergioをエコーし​​て、「somefunction」の中に変数を設定し、他の関数を 'somefunction'の内部で呼び出すのはどうですか? – McGarnagle

答えて

3

あなたの質問を解決する最も簡単な方法は、三項演算子?経由です:

onclick="myTestFunction() ? onTrueFunction() : onFalseFunction();" 

だから、最後に、あなたが何かを宣言する必要はありません。

1

はあなたのJavaScriptのグローバルスコープの変数を宣言すると、あなたは、クリックハンドラで、それに割り当てる:

var myVariable; 

<a href="xxx" onclick="myVariable = somefunction();"> 

それとも、あなたはあなたのための作業を行うクリックハンドラーのための別の関数を作成します。

function dispatchFunction() { 
    if (myVariable) { 
     someFunction1(); 
    } else { 
     someFunction2(); 
    } 
} 


<a href="xxx" onclick="dispatchfunction();"> 

それとも、あなたが望むものに依存する:

function dispatchFunction() { 
    if (someFunction0()) { 
     someFunction1(); 
    } else { 
     someFunction2(); 
    } 
} 

ポイントはということですクリックハンドラから関数を呼び出すだけで、クリックハンドラHTMLに複数のステートメントをインラインで置くのではなく、必要な作業をその関数に持たせるのが普通です。

3

varを使用すると、その変数はそのクリックハンドラにローカルスコープであり、グローバルオブジェクトではなくwindowとなります。最も簡単な修正は直接windowのプロパティとして変数の値を設定するために、次のようになります。

onclick="window.varable = somefunction();" 

その後、あなたは、コードの他の部分からvarable(原文のまま)にアクセスすることができます。

つまり、アプリケーションロジックをonclick属性に直接入れるのは悪い考えです。

関連する問題