0

我正在使用 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 工具,您可能会注意到这几乎是在叠加层中加载 URL 的基本文档模板 - 除了我添加的它必须仅加载 #specificDIV,而不是整个 URL覆盖。

为了参考,这里是来自 jQuery 工具演示文档的原始 .load() 函数(没有我的#specificDIV):

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

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

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

4

2 回答 2

1

嗯,.load基本上是$.getand的简写.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"));
  })
});
于 2013-08-22T21:55:14.233 回答
-1

好吧,你可以看看是如何$.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);
                })
            }
        });
    });
});
于 2013-08-22T21:54:32.217 回答