2012-01-30 26 views
1

Ruby on Railsアプリケーションアプリケーションを開発しています。ここでは、javascript関数onclickイベントを呼び出して値を保持しています。その戻り値をjavascript変数predifined変数に代入したいと思います。 私のjavascript関数は次のようになります。javascriptイベント関数の戻り値をjavascript変数に割り当てる方法

function hideBrowser(var_i) 
{ 
k=var_i+1; 
$("#fileinput-button"+k).hide(); 
return var_i; 
} 

と、次のように関数を呼び出しています:

'<div class="cancel" id="cancel'+i+'" onclick=i=(hideBrowser('+i+'))><button >Cancel</button></div>' 

この問題を解決するために私を助けてください。

更新

最初の参照ボタンは、ユーザーが画像を閲覧する際に、その画像は画像iのプレビューでブラウズボタンの代わりに表示する必要があり、ユーザのために表示されている。ここで、iは、一つのアプリケーションをしようとしていますRubyでajax-jqueryファイルアップローダーを使用してそれを行い、別のブラウズをユーザーに表示します。ユーザーがイメージをキャンセルすると、次のブラウズボタンはディサッパーとプレビューが以前の値として再びカウントされるはずです。私はこのアプローチを試して、すべてのものが動作しているが、私は前の値として変数iの値を設定したいのです。これは動作していない私を助けてください。

上記のコードはすべてjavascriptファイルで作成されています。

+0

ここでこれは必要ですか?これは良い解決策ではありません –

+0

Javascriptで変数を初期化するときは、グローバルスコープを汚染しないように 'var'キーワードを使うべきです。たとえば、変数 'k'は、' hideBrowser'関数の中でのみ有用であり/必要です。したがって、グローバルである必要はありません。あなたのHTMLも間違っている可能性があります。あなたは何かをしています。一重引用符で囲まれていますが、なぜそれほど確かではありません。また、 'onclick'属性を使用するのではなく、jQueryを使用してイベントハンドラをバインドする方がよいでしょう。 –

答えて

1

あなたのコードから正確にはわかりません。しかし、それが動作している下のコードを参照してください。

ご希望の場合はお手数ですが、

<script> 
function hideBrowser(var_i) 
{ 

return var_i ; 
} 
</script> 

<div class="cancel" id="cancel'+i+'" onclick='var i=hideBrowser(10); alert(i);'><button >Cancel</button></div> 
0

ハンドラは真または偽を返すだけです。可能であれば、falseを返すとイベントがキャンセルされます。イベントが非同期にになると、ほかの値を他の関数に返すことはできません。しかし、あなたができることは、あなたのイベントハンドラから別の関数を呼び出し、必要な引数を渡します。

関連する問題