【发布时间】:2014-01-18 16:55:24
【问题描述】:
我刚刚更新到 chrome 版本 32.0.1700.76 m,我现在注意到 hashchange 似乎表现得很奇怪。有时有效,有时无效。
我的主页上有以下代码,我已经几个月没有更改代码了。几天前工作正常(在我更新到最新的 chrome 版本之前):
$(window).on('hashchange', function () {
var page = location.hash.slice(1);
$('[data-page]').addClass('hidden');
$('[data-page=' + page + ']').css('z-index', '0');
$('#1st-row').children().eq(0).css('z-index', '1');
$('#1st-row').children().eq(1).css('margin-left', '-200px');
$('[data-page=' + page + ']').removeClass('hidden');
$('#1st-row').children().eq(1).animate(
{ 'margin-left':'0px' }, 1000);
$(':checkbox').checkbox('check');
$('#debug').attr('value', 'true');
});
当我重新设计我的网站时,我发现有些东西不能正常工作,所以我对其进行了一些更改:
$(window).on('hashchange', function () {
var page = location.hash.slice(1);
$('[data-page=' + page + ']').slideDown();
});
但它仍然无法正常工作。 我必须多次重新加载页面,再次访问该站点(ctrl+l -> enter),再重新加载几次,然后它就神奇地工作了。但它不会再次工作......我必须刷新并重新加载页面/站点几次,然后它才能决定让 hashchange 工作。
您可以在 lingonsorbet.se 对其进行测试。 只需将#advanced 添加到网址,右侧就会出现一个框。在 Firefox 和 ie 中运行良好。
是我做错了什么还是其他人也遇到了这种情况?
【问题讨论】:
-
@susheel jsfiddle.net/eQU2e
-
什么应该触发
hashchange事件? -
@snwflk 每当您向以哈希开头的 url 添加内容时。例如,
example.com/#hash。 -
小提琴能证明这一点吗?如果没有,请在其他地方提供一个测试用例。您是否尝试过使用
console.log来调试您的 javascript? -
@snwflk 我不认为 jsfiddle 能够处理这个问题,不。添加它是因为有人要求它。您可以在 lingonsorbet.se 上对其进行测试。只需将#advanced 添加到网址,右侧就会出现一个框。在 Firefox 中试试看是否有效
标签: javascript jquery google-chrome hashchange