2

選択の値に応じて、AJAX を介してデータを div にロードする関数があります。選択には、事前に定義された値をロードすることも、変更することもできます。

DOM の準備ができて、ユーザーが選択を変更した場合に実行する関数が必要です。get_data() への各呼び出しは、どちらか一方のみを含める場合に機能します...しかし、コードに両方の呼び出しを残すと... 2番目の呼び出しは機能しません。

  jQuery ->

    f_lesson      = $("#flight_flightlesson_id")
    gi_container  = $("#gradable_items_container")
    load_box      = $("#load_box")
    lesson_tell   = $("#load_box #gradable_items")
    scenario_tell = $("#load_box #scenarios")

    get_data = ->
      if $('#flight_flightlesson_id option[value]:selected').text() == ''
        gi_container.text("You must select a lesson in the 'Flight Info' Tab")
        scenario_tell.text("")
        load_box.removeClass("is-fetching")
        lesson_tell.text "No Lesson Selected"

      else

        $.ajax
          url: "gradable_items_inputs?lesson=#{ f_lesson.val() }"

          beforeSend: ->
            load_box.addClass("is-fetching")
            lesson_tell.text("...loading gradable items")
            scenario_tell.text("...loading scenarios")

          success: (data) ->
            gi_container.html(data).find("#ajax_gradable_items_for_lesson_content")

          complete: ->
            lesson_tell.text("")
            scenario_tell.text("")
            load_box.removeClass("is-fetching")

          error: ->
            lesson_tell.text "ERROR"

  # get_data()

    f_lesson.on "change", ->
      get_data()

get_data() への最初の呼び出しは、DOM のロード時に機能しますが、変更時の呼び出しは機能しません。get_data の最初の呼び出しをコメント アウトすると、on change 呼び出しが機能します。

両方とも機能しないのはなぜですか?コードにエラーはありますか? 私の実行の欠陥ですか?

4

1 に答える 1