展开并滚动到隐藏元素

时间:2021-01-05 09:57:12

标签: jquery

我用它来切换 div 的显示...

<script>
jQuery(".trigger").not('.edit .trigger').click(function(event){
event.preventDefault();
jQuery("#target").slideToggle();
});
</script>

但我正在尝试调整它,使其不仅扩展隐藏的 div,还滚动到扩展的 div (#target)。到目前为止,我所尝试的一切都完全打破了它,有什么想法吗?

我刚试过

 <script>
 $element = $('#target');
 $element.hide();
 $('.trigger').click(function(event){
 event.preventDefault();
 $a = $(this);

 $element.slideToggle(250, function(){
    $(window).scrollTop($a.offset().top);
 });
 });
</script>

但我发现 $ 不是函数

1 个答案:

答案 0 :(得分:1)

如果您收到错误“$ is not a function”,请尝试使用 jQuery() 而不是 $()。

你应该用 var 来定义变量。

您的 scrollTop 函数滚动到 .trigger 元素,而不是目标。 看起来像这样(未经测试):

 <script>
 var element = jQuery('#target');
 element.hide();
 jQuery('.trigger').click(function(event){
    event.preventDefault();

    element.slideToggle(250, function(){
       jQuery(window).scrollTop(element.offset().top);
    });
 });
</script>