1

我知道要链接到同一页面中的某个部分,例如:

<a href='#A'>A</a>

<a name='A'>Here is A</a>

但是当我用 jquery 和 php 设计它时,我遇到了问题。我的设计是这样的:所有字母都是字母。在字母下,有 div(item_A、item_B、item_c 等...)。例如当用户点击K字母时,页面会链接到#K div,并且#K div也会显示其内容。(因为当网站第一次打开时,item div的显示是无的)。但问题是,虽然#K(K只是示例)K显示了它的内容,但页面并没有重定向到#K div。您必须自己滚动。

这是代码:

 <div class="content_letters">
      <ul>
      <?php $array_letter = array("A","B","C","Ç","D","E","F","G","H","I","İ",
                                  "J","K","L","M","N","O","P","R","S","Ş","T",
                                  "U","Ü","V","Y","Z");

      for ($i=0;$i<27;$i++) {

      echo "<li><a id='letter_{$array_letter[$i]}'
            href='#letter_{$array_letter[$i]}'>{$array_letter[$i]} | </a></li>"; 

       }
    ?>
     </ul>
</div>

<?php
    for ($i=0;$i<27;$i++) {
 ?>
    <div class="content_letter_block">
            <div class="text">
            <div class="show_hide">
              <a class="button" id="
               <?php echo 'button_letter_'.$array_letter[$i]; ?>">SHOW/HIDE</a>
            </div>

              <a name="<?php echo "letter_".$array_letter[$i].'">';?>
         <?php  echo $array_letter[$i]; ?></a> starts from here</div>

            </div>                          
    </div>

    <?php } ?>

    <div style='display:none'  id='<?php echo "item_".$array_letter[$i];?>'>    

      Here is item...
    </div>

这是jquery代码:

 $(document).ready(function() {
 // target everything with IDs that start with 'button_letter'

  $("[id^='button_letter']").click(function () {


// split the letter out of the ID
// of the clicked element and use it to target
// the correct div

$("#item_" + this.id.split("_")[1]).toggle();
});

$("[id^='letter']").click(function () {
$("#item_" + this.id.split("_")[1]).show();

});
});
4

3 回答 3

0

您也可以在您的网址中指定一个锚点。

<a href="your-page.html#k" />

当您单击链接时,您将被带到该页面,文档将自动滚动到<a name="k">

于 2012-05-20T00:54:35.003 回答
0

没有时间查看所有代码,但不能使用 scrollTop() 方法?
这里

于 2012-05-19T10:25:48.370 回答
0

要使用 jQuery 滚动到页面中的特定 ID,请使用

$('html,body').animate({scrollTop: $("#"+id).offset().top},'slow');
于 2012-05-19T10:25:50.023 回答