0

我正在构建一个单页历史时间轴微型站点,它会自动适应浏览器的宽度。

我正在尝试在调整窗口大小时执行此操作,正文滚动到最后一个单击的元素。article's 总是全宽和全高。如果我不这样做,当窗口调整大小时,一切看起来都很丑陋。

我正在尝试这样做:

$(window).resize(function() {
  $('body').scrollLeft($('article#a1377').offset().left);
});

效果很好。但是事情是在最后一个点击的元素上做的。所以我试图这样做:

$("header a").click(function(event){
  var element = 'article' + $(this).prop("hash");
});

$(window).resize(function() {
  $('body').scrollLeft($(element).offset().left);
});

但它似乎不起作用,并且元素作为正确的值(article#a1377)。

4

1 回答 1

2

Javascript 闭包!!!

resize元素对于回调是不可见的,它是单击处理程序的本地元素。

假设这'article' + $(this).prop("hash");确实是您要返回的内容!!!

var lastClicked = null;
$("header a").click(function(event){
  lastClicked = 'article' + $(this).prop("hash");
});

$(window).resize(function() {
  $('body').scrollLeft($(lastClicked).offset().left);
});
于 2013-02-07T13:15:24.923 回答