如何确定为所有现代浏览器触发Ajax请求的元素?

时间:2014-05-09 19:48:00

标签: javascript html ajax zepto

我正在尝试获取触发ajax请求的元素。这就是我从zepto文档中获得的内容

  

默认情况下,会在文档对象上触发Ajax事件。但是,如果   请求的上下文是一个DOM节点,事件就是在那个节点上触发的   节点并将冒泡DOM

我从中获得的是ajax请求是从文档对象触发的,很可能是<html>

我有这段代码,我想确定文档的来源

$(document)
.on('ajaxBeforeSend', function(e, xhr, options) {
    console.log(e.target);
    console.log(e.srcElement.activeElement);
    $(e.target).closest('.ajaxContainer').addClass('pre-loader');
    // show your loader
})
.on('ajaxComplete', function(e, xhr, options) {
    $(e.target).closest('.ajaxContainer').removeClass('pre-loader');
    // hide your loader
});


<div class="ajaxContainer">
    <input id="submitBnt" type="button" value="click to fire ajax" />
</div>

我要做的是将pre-loader类添加到触发ajax请求的文档中,但e.target始终是document个对象。但是,我发现在Chrome e.srcElement.activeElement中给了我正确的文档,其中Safari(iOS)中的同一段代码为我提供了document对象

我如何获取源元素,在这种情况下它应该是#submitBnt,它至少可以触发现代Chrome和Safari的ajax请求,因为我只是在做移动应用。

0 个答案:

没有答案