AJAX被调用,即使没有加载doc

时间:2012-07-19 17:55:38

标签: ruby-on-rails ajax coffeescript

我的coffeescript中有这段代码:

$('.asdasd').ready ->
  $.ajax '/splunk/100000000',
  type: 'GET'
  cache: false
  success: (html) ->
    $('.splunk_results').append html

asdasd div甚至不存在 - 但是,在我的控制台中,我可以看到正在调用/ splunk / 10000000。为什么会发生这种情况?

编辑:

我认为这个问题可能与这样一个事实有关,即所讨论的div没有加载初始页面 - 页面充满了部分,而div只是加载了点击另一个js按钮修改DOM。我基本上想看看div何时存在,当它存在时,发出一个新请求并用该请求的结果填充div。

2 个答案:

答案 0 :(得分:3)

(针对问题编辑进行了大量编辑)

.ready只是文档的有效事件。对于$的参数不是document的情况,jQuery's documentation for ready没有定义行为。也就是说,没有什么可以阻止你定义一个按你想要的方式行事!不是监听就绪事件,而是发明一个自定义事件(比如readyForSplunk)并在适当的时候触发它。

文档或要创建的asdasd div的更近的父级应该有一个委托处理程序来监听readyForSplunk事件。创建asdasd div的js按钮也应triggerHandler ('readyForSplunk')新div。

答案 1 :(得分:1)

readyDOM is ready时运行。如果您只想在相关元素位于页面中的情况下运行它,您可以执行以下操作:

_get = ->
  $.ajax '/splunk/100000000',
    type: 'GET'
    cache: false
    success: (html) ->
      $('.splunk_results').append html

$('.asdasd').each ->
  _get()
  _get = ->