如何显示div然后滚动到它

时间:2016-04-08 15:13:44

标签: javascript jquery html

我有一个页面,其中包含许多隐藏的div,只需单击相应的按钮即可切换。非常基本的jQuery东西。现在,我想要做的是在这些div之一中有一个相对超链接(例如)打开另一个div并将页面滚动到此元素。当链接未连接到jQuery中的事件时,我可以将滚动显示为可见,并且当链接连接到jQuery时我可以打开div。但我想同时做两件事!

这是我的处理程序

  $('.B2BHL').click(function() {
    var month = this.href.substring(this.href.indexOf('#') + 1);
    //$('#' + month + 'div').show();
    window.location.href = this.href;
  });

show()来电被注释掉时,它会滚动。取消注释后,它会打开div,但不会滚动到它

我在Stack Overflow上发现了以下两个问题:

Scroll to a div using jquery

Can I call jquery click() to follow an <a> link if I haven't bound an event handler to it with bind or click already?

但两者都不适合我。我正在使用IE 11.任何人都可以提出建议吗?

由于

2 个答案:

答案 0 :(得分:0)

我想问题可以出现在show()函数上,您可以尝试稍微修改一下代码,以便在 show 功能完成后更改window.location.href,像:

$('.B2BHL').click(function() {
    var month = this.href.substring(this.href.indexOf('#') + 1);
    var href = this.href;
    $('#' + month + 'div').show({
        complete: function() {
           window.location.href = href;
        }
    });    
});

答案 1 :(得分:0)

实际上,我回过头来看了我发布的第一个链接(Scroll to a div using jquery),再次尝试了,并且有效了

  $('.B2BHL').click(function() {
    var idx = this.href.indexOf('#');
    var month = this.href.substring(this.href.indexOf('#') + 1);
    var href = this.href;
    $('#' + month + 'div').show({
      complete: function() {
        goToByScroll(month + 'div');
      } 
    }); 
  });

对不起,我还没有做足够的工作。感谢所有回复的人的帮助