1

ドロップダウンの変更をリッスンし、変数の値を設定するイベント ハンドラーがあります。変数をグローバル、つまり関数の外で宣言し、変更時に値を設定しました。ただし、変数が変更されたら、(偶数ハンドラー内ではなく) 他の関数で変数を取得できるようにする必要があります。イベントハンドラー内からそれを「抽出」するにはどうすればよいですか? 返品しようとしましたが、うまくいきませんでした。コードは次のとおりです。

$(document).on('change', 'select#search_subject', function () {
    if ($('#sBar3').show()) {
        $('#sBar3').hide();
    }
    var subject = $('#search_subject>option:selected').text();
    var id = $('#search_subject>option:selected').val();
    ajaxSubject(subject, '#sBar3');
    return subject;
});
console.log(subject);   

ログには「空の文字列」が表示されるだけで、困惑しています。可能であれば、イベントハンドラー内にすべてを含めるようにコードを再調整したくありません (そこにはたくさんの Google マップ生成コードがあり、それは苦痛になります) - イベントハンドラーからサブジェクト変数を取得する必要があるだけです。理にかなっています-ありがとう

4

2 に答える 2

0

選択が後で作成されない場合、varサブジェクトをローカルにするを削除した後のコードはより単純になります。

$("#search_subject").on('change',function () {
  $('#sBar3').toggle();
  subject = $('option:selected',this).text();
  var id = $(this).val(); // not used?
  ajaxSubject(subject, '#sBar3');
  window.console && console.log(subject);   
  return subject;
});
于 2013-05-31T20:20:27.917 に答える