繁体   English   中英

在javascript中两次调用命名函数

[英]Calling a named function in javascript twice

我有一个函数,根据选择的值,通过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()

DOM加载时,对get_data()的第一个调用有效……但是,随后的on change调用无效。 如果我注释掉对get_data的第一个调用,则on change调用有效。

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

看起来像是缩进问题。 f_lesson.on...似乎比get_data更深,因此,通过注释或取消注释get_data可以将f_lesson...从jQuery()块内部移至顶层。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM