尝试将我的 jquery 箭头 img 更改为 Hide/Show 内容上的不同箭头

Trying to make my jquery arrow img change to different arrow on Hide/Show content

我有这个很简单JQuery

$(document).ready(function() {
  $(".neverseen img").click(function() {
    $(".neverseen p").slideToggle("slow");
    return false;
  });
});

还有这个HTML

<div class="neverseen">
  <h1>Title to always show</h1>
  <a href="#" id="show">
    <img src="images/demo/arrow.png" width="40" height="40">
  </a>
  <p>Text to toggle hide/show</p>
</div>

所以我需要添加另一个名为 arrow2.png 的图像,当隐藏内容激活或使当前箭头旋转 180 度时,它将替换第一个箭头。我尝试了不同的 jquery 方法,但似乎没有什么效果很好。

我希望的另一件事是有一个 border-bottom 始终可见并随隐藏内容移动,因此无论我在做什么,边框都在隐藏的标题下方和可见的内容下方这里导致双边框。

使用 jQuery 的原生 .css() 函数的相当简单的过程。无需替换为完全不同的图像

试试这个:

$(".neverseen img").click(function() {
    $(this).css("transform", "rotate(180deg)"); // rotate the image 180 degrees once it has been clicked
    $(".neverseen p").slideToggle("slow");

    return false;
});

编辑:为了获得连续的结果和底部边框,在你的jQuery中尝试这样的事情:

$(".neverseen img").click(function() {
    $(this).toggleClass("open");
    $(".neverseen p").slideToggle("slow");

    if($(this).hasClass("open")){
        $("h1").css("border-bottom", "none");
        $(this).css("border-bottom", "1px solid black");
    } else {
        $("h1").css("border-bottom", "1px solid black");
        $(this).css("border-bottom", "none");
    }

    return false;
});

然后,在你的 CSS 中:

h1{
    border-bottom: 1px solid black;
}
.neverseen img{
    transform: rotate(0deg);
    transition: transform 500ms; // rotate for 500 milliseconds
}
.open{
    transform: rotate(180deg);
}

您有不同的解决方案来实现这一点,这里是其中之一:

$(document).ready(function() {
  $(".neverseen img").click(function() {
   $(this).parent().toggleClass("active");
   $(".neverseen p").slideToggle("slow");
     return false;
    });
});
img {
  width: 50px;
}

#secondImage {
  display: none;
}

.active #firstImg {
  display:none;
}

.active #secondImage {
  display: inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div class="neverseen">
<h1>Title to always show</h1>
<a href="#" id="show">
<img id="secondImage" src="https://encrypted-tbn2.gstatic.com/images?q=tbn:ANd9GcSWdFg2vU1YX0W8HGMurPjTOSsOf8rwadUWNwPV6I_7NsDJ3nnURSSzIcw" width="40" height="40">
 <img id="firstImg" src="https://image.freepik.com/free-icon/arrow-top-ios-7-interface-symbol_318-34757.jpg" alt="">
</a>
<p>
  Text to toggle hide/show <hr class="to-be-hidden">  
  </p> 
</div>

我建议你使用bootstrap collapse,真的很棒!