将.load()转换为.ajax()

时间:2013-08-22 21:46:58

标签: javascript jquery ajax

我正在使用jQuery Tools来使用他的叠加功能,除了简单地将特定的URL加载到叠加层中之外,它还与特定的ID相结合,因此它将特定的信息从URL加载到叠加层中,这里是代码:

$(document).ready(function () {
    $(function () {
        $("a[rel]").overlay({
            mask: 'grey',
            effect: 'apple',
            onBeforeLoad: function () {
                var wrap = this.getOverlay().find(".contentWrap");
                wrap.load(this.getTrigger().attr("href") + ' #specificDIV');
            }
        });
    });
});

如果您熟悉jQuery Tools,您可能会注意到这几乎是用于在覆盖中加载URL的基本文档模板 - 除了我已经添加它必须只加载#specificDIV,而不是整个覆盖中的网址。

为了便于参考,这里是来自jQuery tools demo docs的原始.load()函数(没有我的#specificDIV):

var wrap = this.getOverlay().find(".contentWrap");
wrap.load(this.getTrigger().attr("href"));

无论如何,我想知道如何使用.ajax()指定此加载函数。一个原因是我想禁用缓存,另一个原因是我真的很好奇如何实现这一点。关于如何将.load()编码为.ajax()的stackoverflow上有很多例子 - 但是没有像上面那样的.load()函数 - 我显然需要帮助 - 所以非常感谢:P

请记住,此加载函数正在将信息加载到具有class =“contentWrap”的div中。

2 个答案:

答案 0 :(得分:1)

好吧,.load基本上是$.get.html的简写。所以你可以这样做:

$.get(this.getTrigger().attr("href"), null, function(data) {
    wrap.html($(data).find("#specificDIV"));
});

$.get $.ajax它只是$.ajax({ url: this.getTrigger().attr("href"), success: function(data) { wrap.html($(data).find("#specificDIV")); }) }); 的简称,因此进一步扩展:

{{1}}

答案 1 :(得分:-1)

嗯,你可以take a look了解$.load的实施方式:

$(document).ready(function () {
    $(function () {
        $("a[rel]").overlay({
            mask: 'grey',
            effect: 'apple',
            onBeforeLoad: function () {
                var wrap = this.getOverlay().find(".contentWrap");
                $.ajax({ 
                    url: this.getTrigger().attr("href") + ' #specificDIV',
                    dataType: 'html'
                }).done(function (responseText) {
                    wrap.html(responseText);
                })
            }
        });
    });
});