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

标签 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 变量。有什么想法可以让它在其他浏览器中工作吗?

最佳答案

您正在混合全局事件和在您的函数被触发时创建的事件e。您要查找的内容可以在 e 中找到,这是触发的事件,在 e.delegateTarget 下,您可以阅读有关 event.delegateTarget 的更多信息。

引用文档:“对于直接附加到元素的非委托(delegate)事件处理程序,event.delegateTarget 将始终等于 event.currentTarget。”

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

关于javascript - jQuery ajaxSend - 哪个元素触发了 ajax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29298631/

相关文章:

javascript - knockout 和数据表

jquery - Bootstrap Popover 防止在特定条件下显示

javascript - 如何使用 Jquery 分割动态列表取决于多个元素?

javascript - 如何从 javascript 调用 url 并获取 url 到 javascript 的响应?

php - 为什么网络服务器会限制 ajax 查询 - DDoS?

javascript - Node.js 中未定义上传的图像数据

javascript - 保存 Javascript 变量以供以后使用?

javascript - 表排序器不工作

javascript - 如何让 Youtube 视频在页面刷新时继续播放

javascript - 验证模式的正则表达式