我有一个函数可以通过 AJAX 将数据加载到 div 中,具体取决于选择的值。选择可以加载预定值...或更改。
我需要在 DOM 准备好并且用户更改选择时运行该函数。如果我只包含一个或另一个,则对 get_data() 的每个调用都有效……但如果我将两个调用都留在代码中……第二个将不起作用。
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 加载时起作用……但是,on change 调用不起作用。如果我注释掉对 get_data 的第一次调用,则 on change 调用有效。
为什么他们两个都不工作?我的代码有错误吗?我的执行有缺陷?