jQuery ajaxSend - 哪个元素触发了ajax?

时间:2015-03-27 10:35:17

标签: javascript jquery ajax coffeescript

我正在处理一个相当大的项目,我想找到哪个DOM元素已经触发了ajax调用。

我有这样的代码:

initAjaxSend: ->
    that = @
    $(document).ajaxSend (e, xhr, options)->
      if typeof event != 'undefined' && event
        e = event
      that.showPreloader(e, xhr)

showPreloader()函数使用e.target来查找DOM元素。

仅适用于Chrome,因为Chrome具有全局event变量。任何想法如何使其在其他浏览器中工作?

1 个答案:

答案 0 :(得分:1)

您正在混合,全局event和触发函数时创建的事件e。您可以在e中找到所需内容,这是触发事件,在e.delegateTarget下,您了解了有关event.delegateTarget

的更多信息

从文档引用:"对于直接附加到元素的非委派事件处理程序,event.delegateTarget将始终等于event.currentTarget。"

initAjaxSend: ->
    that = @
    $(document).ajaxSend (e, xhr, options) ->
        console.log e.delegateTarget   
        that.showPreloader(e, xhr)