2 つの関数があり、2 番目の関数から何かを返そうとしています。何が間違っているのかわかりません。私undefined
はアラートを受け取り続けます。
function a(){
var testMe = b("hello");
alert(testMe);
}
function b(theVar){
var returnVar = theVar;
return returnVar;
}
2 つの関数があり、2 番目の関数から何かを返そうとしています。何が間違っているのかわかりません。私undefined
はアラートを受け取り続けます。
function a(){
var testMe = b("hello");
alert(testMe);
}
function b(theVar){
var returnVar = theVar;
return returnVar;
}
質問の件名には「Return from on function」と書かれており、タグには が記載さjQuery
れていますが、質問のコードは正常に機能します。
私は、テスト ケースを縮小しすぎてそこから問題を取り除いたと仮定して作業しています (将来的には、縮小されたテスト ケースをテストして、問題が解決しないことを確認してください!)、実際には次のようなものがあると仮定します。
function a() {
var result = jQuery('foo').on('click', function () { return 1; });
// ^^ This being the on function
}
…そしてあなたresult
は等しくしたい1
.
不可能だよ。
on
後で実行するイベント ハンドラーを割り当てるだけです。a
willの実行は、そのイベントが発生する前に終了します。イベント ハンドラーから、それを割り当てる関数に何も返すことはできません。
データが使用可能になったときに実行する関数を定義するコールバックを使用できます。これは、 の 2 番目の引数として渡す関数とまったく同じように機能しますon
。
function a(callback) {
var result = jQuery('foo').on('click', function () { callback(1); });
}
a(function (result) { alert(result); });