【发布时间】:2012-01-13 14:49:33
【问题描述】:
我在这个网站上使用了下面这个脚本http://ronnidc.dk...
当用户检查时,例如[jan] 一个点出现在下面的地图上。当用户单击该点时,包含指向子页面的阅读更多链接的预告文本会出现在地图下方。这一切都按预期工作。
问题 1: 问题是当用户通过(history-1)链接返回首页时。然后所有复选框都被清除,点和预告文本被设置回基础。除了在 Firefox 中——它在 Firefox 中完美运行。我猜这个问题与在 Firefox 以外的所有其他浏览器中重置 DOM 有关吗? (我希望当用户返回到带有地图的页面时,复选框选择、地图上的点和所选预告文本仍然可见)。
我怎样才能避免这个问题?使用某种 .live 函数? (已从 jQuery 1.7 弃用)
问题 2: 当用户选中 [all] 时,所有复选框都按预期选中。但是为了有意义,当取消选中其他复选框之一时,复选框 [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');
});
});
【问题讨论】:
标签: javascript jquery dom browser-history