javascript - 多个 slidetoggle div 更改文本

标签 javascript jquery html css slidetoggle

我有这段代码,它显示了一个配置文件 div onclick 并且还更改了被单击元素的文本。有多个这样的例子。

<div class="show" data-target=".open1">View Profile</div>
<div class="info open1">Lorem ipsum</div>

当打开另一个 div 时,先前打开的 div 将关闭。但是,关于此的文本仍然保持为“关闭配置文件”。我想对此进行更改,以便文本也变回原样。

知道我该怎么做吗?

var $bgs = $('.info');
var $show = $('.show');

$($show).click(function () {
    var $target = $($(this).data('target')).stop(true).slideToggle();
    $bgs.not($target).filter(':visible').stop(true, true).slideUp();

    $(this).click(function(){
        $(this).text(function(_, oldText) {
            return oldText === 'Close Profile' ? 'View Profile' : 'Close Profile';

        });

    });
})

最佳答案

请检查:

var $bgs = $('.info');
var $show = $('.show');

$show.click(function () {
    var $target = $($(this).data('target')).stop(true).slideToggle();
    var oldOpened = $bgs.not($target).filter(':visible');
    oldOpened.stop(true, true).slideUp();
    if(oldOpened.length > 0){
      var tempClasses = $(oldOpened).attr("class");
      var oldOpenClass = $.trim(tempClasses.replace("info",""));
      var oldOpenerDiv = $("div[data-target='."+oldOpenClass+"']");
      
      $(oldOpenerDiv).text(function(_, oldText) {
        return oldText === 'Close Profile' ? 'View Profile' : 'Close Profile';

       });
    }
  
   $(this).text(function(_, oldText) {
      return oldText === 'Close Profile' ? 'View Profile' : 'Close Profile';

   });
})
.info{
  display:none;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="show" data-target=".open1">View Profile</div>
<div class="info open1">Lorem ipsum 11</div>
<div class="show" data-target=".open2">View Profile</div>
<div class="info open2">Lorem ipsum 22</div>
<div class="show" data-target=".open3">View Profile</div>
<div class="info open3">Lorem ipsum 33</div>

关于javascript - 多个 slidetoggle div 更改文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33345178/

相关文章:

javascript - 如何在jquery中获取右、左、上、下箭头键值

javascript - WordPress 中的 jQuery - 在 mouseenter 和 mouseleave 事件上反转 Font Awesome

javascript - Node.js API 在终端中返回 JSON,但在浏览器中不返回

javascript - 为 WordPress 主题添加 JavaScript 功能

php - Jquery循环遍历php数组,点击API并将结果推送到mysql

javascript - cmd+s 和 ctrl+s 的 jquery 按键事件

javascript - 如何使用 javaScript 从 HTML 表单打印用户输入

javascript - 在网页/javascript中用什么来做这个效果?

javascript - javascript 中的 Jinja 模板

javascript - 防止大型菜单项在悬停时自动隐藏