2016-06-18 3 views
0

変数 "search"の値を最初の関数から最後のajax呼び出しで使用する最も良い方法は何でしょうか?私は閉鎖を使用することができますが、どのように確かではないことがわかりますここに私のコードは次のとおりです。クロージャを使用してJavascriptでajax呼び出しを行うイベントハンドラ関数のローカル変数を使用する

$(document).on("click", ".box", function(){ 
    var search = $(this).attr("alt"); 
    $.ajax({ 
     method: "GET", 
     url: url + search, 
     success: function(data){ 
      console.log(data); 
     } 
    }) 
}); 

$(".select").change(function(){ 
var param2 = $(this).val(); 
$.ajax({ 
    method: "GET", 
    url: url + search + param2, 
    success: function(data){ 
     console.log(data); 
    } 
    }) 
}); 
+0

あなたのページに複数の '.box'sを持っていますか?そうでない場合は、JavaScriptコードの定数に格納してください。 – Timo

+0

ええ、残念ながら私は複数を持っています... – ConfusedLuigi

+1

2つの関数の外で変数を宣言するだけで、両方の内部でアクセス可能になります。変更ハンドラにテストを追加して、設定されていることを確認します(ユーザーがボックスをクリックせずに選択値を変更した場合)。 – nnnnnn

答えて

1

は、両方の機能の範囲外で変数を宣言するのと同じくらい簡単です:

var search; 

$(document).on("click", ".box", function(){ 
    search = $(this).attr("alt"); 
    $.ajax({ 
    method: "GET", 
    url: url + search, 
    success: function(data){ 
     console.log(data); 
    } 
    }) 
}); 

$(".select").change(function(){ 
var param2 = $(this).val(); 
$.ajax({ 
    method: "GET", 
    url: url + search + param2, 
    success: function(data){ 
     console.log(data); 
    } 
    }) 
}); 
+0

私が想定したことはうまくいかないでしょう。ありがとう!! – ConfusedLuigi

関連する問題