javascript - JQuery 的scrollTo 元素只工作一次

标签 javascript php jquery html wordpress

我正在开发一个网站,通过父页面上的幻灯片显示我的子页面。在每个子页面上,我都有一个向下滚动链接,可以滚动到图像上方的第一个标题。但是,当我链接到标题元素时,它仅适用于显示的第一个子页面,而不适用于其他子页面。我尝试用一​​个值替换该元素,当这样做时,它适用于我的所有页面,因此这不是由于滚动功能造成的。我尝试通过类更改目标元素 ID,因为我通过循环显示页面并认为 ID 可能是问题所在,但它仍然无法正常工作。有人可能知道这里发生了什么事吗?这是我的代码:

JS:

    $('.scroll-down').click (function scroll() {
        $(".slider").scrollTo($('h3.title') ,800);
    }); 

HTML/PHP:

foreach ($children as $post){
$thumbnailid=get_post_thumbnail_id($post);
$postthumbnail= wp_get_attachment_image_src($thumbnailid,'full-size');
  setup_postdata($post);
  ?>
  <div class = mySlides>
    <a class="scroll-down"></a>  
    <img src="<?php echo $postthumbnail[0];?>">
    <h3 class="title"><?php echo ($post->post_title);?></h3>
    <?php the_content($post);?>
  </div> 
  <?php
}

我设法让它在所有页面上工作一次,但是在处理其他事情之后,它停止工作,并且我没有修改js行。我希望有人能给我指出解决这个问题的方向!谢谢!

最佳答案

很快,这是因为你的 js 选择器。当您使用 $('h3.title') 作为选择器时,它会从代码顶部扫描并获取第一个。

为此,您可以使用如下代码:

 $('.scroll-down').click (function scroll() {
     var nextTitle = $(this).parent().find('h3.title');
     $(".slider").scrollTo(nextTitle) ,800);
 }); 

注意:我没有在真实网站上检查过。让我知道它是否有效。

关于javascript - JQuery 的scrollTo 元素只工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59818863/

相关文章:

php - 如何在 laravel 5.8 中使用批量分配上传图像?

php - MySQL 查询中的性能

php - zip_open();在 PHP 5.2.8 上未定义

javascript - 如何更改按钮中的文本而不更改其他标签

javascript - Opa流控、线程?

javascript - 阻止浏览器缓存文本文件

javascript - 在Javascript中添加元素时的动态div

javascript - 尝试根据这种情况创建一个数组,jquery或javascript

javascript - 使用Tampermonkey解链电话: links

javascript - 特定列上的脚踏式过滤器