jquery - 打开和关闭容器 (div)

标签 jquery html css angularjs

我的 jQuery 之前可以正常工作,但最近我不得不向我的 HTML 添加更多的 div。我正在尝试通过单击按钮 replyButton 打开和关闭 discussionContainer。任何帮助都会很棒。

我将在此处对 replyButton 进行 ng-click 操作,并获取 http 请求的 id 以从我的数据库中获取内容,我可以在 Angularjs 中执行此操作吗?也许除了 jQuery 和 Angularjs 之外还有其他一些想法/建议?在页面加载时,discussionContainer 将关闭。

$(document).on("click", ".replyButton", function() {
  $(this).parent('.forQuestions').find(".discussionContainer").slideToggle(300);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="question">
  <div class="forQuestion">
    <div class="cardBody">
      {{answer.aContent}}
    </div>
    <div class="cardFooter">
      <div class="col-xs-4 footer1">
        <button class="replyButton">Reply</button>
      </div>
      <div class="col-xs-4 footer2">
        <i class="fa fa-trash" aria-hidden="true" ng-click="controller.deleteAnswer(answer._id)"></i>
        <i class="fa fa-pencil" aria-hidden="true" ng-click="controller.showEditAnswerModal(answer)"></i>
      </div>
      <div class="col-xs-4 footer3">
        {{answer.aDate | date: 'medium'}}
      </div>
    </div>
    <div class="discussionContainer">
      <ul>
        <li>comment1</li>
        <li>comment2</li>
      </ul>
      <div class="newComment">
        <textarea rows="2" cols="30" placeholder="New comment"></textarea>
        <button type="button" name="button">Comment</button>
      </div>
    </div>
  </div>
</li>

最佳答案

您的代码的问题是:

1-- .parent()只在 DOM 树上移动一层

2-- 你没有类 forQuestions 的元素 你正确的类是 forQuestion 没有 s结束 .. 所以你需要使用 .closest('.forQuestion')

演示

$(document).on("click", ".replyButton", function() {
  $(this).closest('.forQuestion').find(".discussionContainer").slideToggle(300);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="question">
  <div class="forQuestion">
    <div class="cardBody">
      {{answer.aContent}}
    </div>
    <div class="cardFooter">
      <div class="col-xs-4 footer1">
        <button class="replyButton">Reply</button>
      </div>
      <div class="col-xs-4 footer2">
        <i class="fa fa-trash" aria-hidden="true" ng-click="controller.deleteAnswer(answer._id)"></i>
        <i class="fa fa-pencil" aria-hidden="true" ng-click="controller.showEditAnswerModal(answer)"></i>
      </div>
      <div class="col-xs-4 footer3">
        {{answer.aDate | date: 'medium'}}
      </div>
    </div>
    <div class="discussionContainer">
      <ul>
        <li>comment1</li>
        <li>comment2</li>
      </ul>
      <div class="newComment">
        <textarea rows="2" cols="30" placeholder="New comment"></textarea>
        <button type="button" name="button">Comment</button>
      </div>
    </div>
  </div>
</li>

关于jquery - 打开和关闭容器 (div),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44535446/

相关文章:

javascript - JSTree 添加新的父节点或子子节点

html - 出现在文本段落中时 DIV 上方的空间(工具提示)

jquery 滑动窗体边框

html - 导航栏下的空白/间隙仅在 iPad View 上?

javascript - 我应该如何使用 MVC3 在 javascript 中创建相对路径?

javascript - jQuery 选择将事件绑定(bind)到键盘

Javascript - 动态改变绝对定位

html - 如何关闭 HTML5 离线缓存

javascript - 多维数组问题

javascript - 如何隐藏和打开导航