javascript - 第二次按下时链接不会动态加载内容

标签 javascript jquery html ajax

我有一个动态显示(或者至少是计划)内容的网站,但它有一些问题。当我第一次打开该网站并单击链接时,它会动态加载内容。当我返回并再次按链接时,它会重新加载整个网站。我觉得我错过了一些重要的东西,它会是什么?

Ajax :

$(document).ready(function () {
    var container = $('#content');

    $('a').click(function (e) {
        e.preventDefault();
        var url = $(this).attr('href');
        //$('#content').hide('fast');
        history.pushState({path: url}, null, url);
        container.load(url);
        return false;
    });

    $(window).bind('popstate', function (event) {
        var state = event.originalEvent.state;

        if (state) {
            container.load(state.path);
        }
    });

    history.replaceState({path: window.location.href}, '');
});

最佳答案

发生这种情况是因为您替换了内容,并且链接不再绑定(bind)到您添加的事件。您需要重新绑定(bind)事件或使用事件委托(delegate)。

所以事件委托(delegate)的解决方案就是替换

$('a').click(function (e) {

container.on("click", "a", function (e) {

关于javascript - 第二次按下时链接不会动态加载内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32659116/

相关文章:

javascript - 如何将一个数组添加到另一个数组以创建数组的数组。 (JS)

javascript - 未捕获的类型错误 : undefined is not a function

javascript - 从 Controller 调用 javascript 函数

javascript - jQuery - 动态表单

javascript - 如何合并具有相同值的单元格表

javascript - 如何将图像源插入隐藏的输入值

javascript - 由于文档的框架被沙盒化而阻止脚本执行 - Angular 应用程序

javascript - 如何在 Accordion 中隐藏/可见元素

javascript - 如何以安全可靠的方式只抓取 HTML 元素的文本

jquery - 如何防止在固定到顶部的导航栏过渡中发生捕捉?