gpt4 book ai didi

javascript - 在javascript中调用命名函数两次

转载 作者:行者123 更新时间:2023-11-30 06:28:14 24 4
gpt4 key购买 nike

我有一个函数可以根据选择的值通过 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 加载时起作用...但是,然后在更改时调用不起作用。如果我注释掉对 get_data 的第一次调用,则更改时调用会起作用。

为什么它们都不起作用?我的代码有错误吗?我的执行有缺陷?

最佳答案

这看起来像是一个缩进问题。 f_lesson.on... 似乎比 get_data 更深一层,因此通过注释或取消注释 get_data 您正在移动 f_lesson...从 jQuery() block 内部到顶层。

我认为您的意思是将 get_data() 调用缩进一层。

关于javascript - 在javascript中调用命名函数两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19622775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com