jQuery在history.back(-1)上不需要重置DOM

时间:2012-01-13 14:49:34

标签: javascript jquery dom browser-history

我在此网站上使用了以下脚本 http://ronnidc.dk...

当用户检查时,例如[jan]下面的地图上会出现一个点。当用户点击该点时,会在地图下方显示包含指向子页面的更多链接的预告文字。这一切都按预期工作。

问题1 : 问题是当用户通过(历史-1)链接返回到首页时。然后清除所有复选框,将点和预告文本设置回基础。除了在Firefox中 - 它在Firefox中完美运行。我想这个问题与在Firefox之外的所有其他浏览器中重置的DOM有关? (我希望复选框选择,地图上的点以及当用户返回带有地图的页面时仍然可以看到所选的预告文本。)

如何避免此问题?使用某种.live函数? (不推荐使用jQuery 1.7)

问题2 : 当用户检查[全部]时,所有复选框都按预期进行检查。但有意义的是,当取消选中其中一个复选框时,复选框[All]的选择应该消失。 (其余复选框应保持选中状态)

如何做到这一点?

/**functions.js**/ 

$(document).ready(function () {

/* =Filtering - (mark the map with dots)
----------------------------------------------- */
    $(function () {

        $('#filtering :checkbox.checkall').click(function () {
            $(this).parents('fieldset:eq(0)').find(':checkbox').attr('checked', this.checked);
        });


            $("#filtering :checkbox").attr('checked', null); //uncheck checkboxes on page reload in Firefox
            $("#filtering :checkbox").click(function() {
                $("#pageTeaser article mark").hide();
                $("#filtering :checkbox:checked").each(function() {
                    $("." + $(this).val()).show();
                });
            });

    });



/* =Teaser Show - (Showing teaser text when clicking the dot's)
----------------------------------------------- */
    $('#pageTeaser article mark').click(function() {
        $('#pageTeaser article .inner').hide();
        $('#pageTeaser article .inner').removeClass('active');
        $(this).siblings('.inner').show();
        $(this).siblings('.inner').addClass('active');
    });

});

1 个答案:

答案 0 :(得分:1)

你必须在某个地方存储该状态(所有复选框状态):cookie,location.hash,url,...也许history.js可以是任何帮助。