0

我目前有一个缩略图库,单击它会为模态窗口设置动画并通过 ajax 加载内容。我使用“window.location.hash”为加载到我的模态中的内容创建了一个唯一的 url。

var base_url = "http://www.ddbremedy.co.uk/siteupdate/";

$('#work_gallery li a').on('click', function(event) {

    event.preventDefault();
    postLink = $(this).attr('href');
    window.location.hash = postLink.replace(base_url, "");
});

然后模态动画进入并通过 ajax 加载内容。然后,当我关闭模式时,我添加此代码以删除加载 ajax 页面时添加的哈希和 url 后缀。

if ("pushState" in history) {
    history.pushState("", document.title, window.location.pathname);
} else {
    window.location.hash = "";
}

这一切都很好,但我需要的是能够获取生成的 ajax 链接并在粘贴到新窗口时自动触发正确缩略图上的单击事件以加载正确的内容。我知道基本上可以检测 url 中是否有哈希和特定单词,如下所示:

var pathname = window.location.hash;
if (pathname.indexOf("work") >= 0) {
    // trigger click event on correct thumbnail to launch modal   
}

我知道我可能需要触发这样的点击事件:

$('#work_gallery li a').trigger('click');

但我不知道如何根据 ajax 内容的 url 将其应用于正确的缩略图。modal 本身是使用 jquery 完成的,没有任何插件,我也需要保持这种方式。任何帮助将不胜感激。

提前谢谢了。

4

1 回答 1

1

设法让它工作。@BenM 为我指出了正确的方向。我是这样做的:

首先,我运行一个名为“checkUrl”的函数,它检查 URL 以查看它是否包含哈希。

checkUrl = function() {
    if (window.location.hash) {

    }
};

checkUrl();

然后在 if 语句中,我将哈希路径存储到变量中,并将其从哈希中拆分出来。然后我将哈希后的字符串存储到一个变量中。

var pathname = window.location.hash,
    rez = pathname.split('#'),
    linkUrl = rez[1];

然后,我将该变量作为具有该特定 href 的链接的选择器传递,并在相应链接上触发单击事件,然后以正确的模式进行动画和加载。

$("a[href='http://www.ddbremedy.co.uk/siteupdate/" + linkUrl + "']").trigger('click');

希望这将有助于将来的某人。

于 2013-03-26T11:02:48.290 回答