2

我正在使用 jQuery 来显示或隐藏跨度。但我希望它<div>出现在与我单击的链接相同的位置。当前代码实际上<div>在屏幕左侧显示了标签。这是我正在使用的代码。

<script>
$(document).ready(function(){
    $(".slidingDiv").hide();
    $(".show_hide").show();
    $('.show_hide').click(function(){
    $(".slidingDiv").slideToggle();
      return false;
    });
    $(".slidingDiv1").hide();
    $(".show_hide1").show();
    $('.show_hide1').click(function(){
    $(".slidingDiv1").slideToggle();
      return false;
    });
});
</script>

跨度标签:

<span>
 <a href="#" class="show_hide">Japan</a>
 <span class="slidingDiv">
   <img src="02-1 ImageFiles/01 Japan.JPG" style="width:235px; height:245px;">
   <a href="#" class="show_hide">Close</a>
 </span>
 is made up of islands, regions, prefectures (government districts), cities, and surrounding communities. The main island, Honshu, has thirty-four prefectures making up five regions. The 
 <a class="show_hide1" href="#">Tōhoku Region</a>
 <span class="slidingDiv1">
  <img src="02-1 ImageFiles/02 TohokuRegion.JPG" style="width:217px; height:236px;">
  <a href="#" class="show_hide1">Close</a>
</span>
4

2 回答 2

1

这可以是您的 HTML 部分:

<a href="#" class="show_hide" style="position: relative;">Japan</a>
<span class="slidingDiv" style="position: absolute; left: 0;">
    <img src="02-1 ImageFiles/01 Japan.JPG" style="width: 235px; height: 245px;" />
    <a href="#" class="show_hide_close">Close</a>
</span>
is made up of islands, regions, prefectures (government districts), cities, and surrounding communities. The main island, Honshu, has thirty-four prefectures making up five regions. The
<a class="show_hide" href="#" style="position: relative;">T&#197;hoku Region</a>
<span class="slidingDiv" style="position: absolute; left: 0;">
    <img src="02-1 ImageFiles/02 TohokuRegion.JPG" style="width: 217px; height: 236px;" />
    <a href="#" class="show_hide_close">Close</a>
</span>

这可以是您的脚本部分:

<script type="text/javascript">
    $(document).ready(function () {
    $(".slidingDiv").hide();
    $(".show_hide").show();

    $('.show_hide').click(function () {
        var el = $(this);
        var slidingDiv = el.find("span.slidingDiv");
        if (slidingDiv.length > 0) {
            slidingDiv.slideToggle(function () { el.after(slidingDiv); });
        }
        else {
            slidingDiv = el.next("span.slidingDiv");
            el.append(slidingDiv);
            slidingDiv.slideToggle();
        }
        return false;
    });
    $('.show_hide_close').click(function () {
        $(this).parent().parent("a.show_hide").click();
        return false;
    });
});

解释:

  • 该脚本将在单击时将跨度附加到锚点,并在关闭时将其移回其原始位置。原因是您不能在 html 代码中的锚标记中包装块(这里是跨度),所以我们将在运行时进行。我们应该包装它,因为我们需要在锚标签下方显示跨度。

  • 包含 img 和关闭按钮的 span 应该有绝对位置

  • 将被单击的锚点应该具有相对位置,以便浏览器可以从父锚点计算跨度的位置,因此它现在将位于链接下方

  • 我概括了锚和跨度类,所以你可以只用一个脚本块

  • 不同的类已分配给关闭按钮,因此单击它将单击父锚点

于 2012-10-29T17:35:50.497 回答
-1

删除 div 并将跨度设置为显示:块

<a href="#" class="show_hide">Japan</a>
<a href="#" class="show_hide">Close</a>
<span class="slidingDiv">
    <img src="02-1 ImageFiles/01 Japan.JPG" style="width:235px; height:245px;" />    
</span>

span
{
   display: block;
}​

检查小提琴

于 2012-10-29T15:13:26.843 回答