javascript - jQuery 切换功能无法按预期使用每个和单击功能
问题描述
我试图+Details
在单击和显示元素后隐藏它xClose
,反之亦然,但它不起作用。此外,当我单击+Details
所有 div 时,即使我使用了each()
函数,也会打开。当您单击xClose
我希望显示eventInfo
文本时,我什xClose
至无法显示文本。
$('.openInfo').each(function (index) {
$(this).click(function () {
$('.eventInfo').toggleClass('show');
$('openInfo').toggleClass('hide');
$('closeInfo').toggleClass('show');
});
});
$('.closeInfo').each(function (index) {
$(this).click(function () {
$('.eventInfo').toggleClass('show');
$('closeInfo').toggleClass('hide');
$('openInfo').toggleClass('show')
});
});
.event{
margin-bottom: 30px;
}
.eventInfo, .closeInfo{
display: none;
}
.show{
display: block;
}
.hide{
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="event">
<p class="openInfo"><span>+</span>Details</p>
<p class="eventInfo"> Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit</p>
<p class="closeInfo"><span>x</span>Close</p>
</div>
<div class="event">
<p class="openInfo"><span>+</span>Details</p>
<p class="eventInfo"> Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit</p>
<p class="closeInfo"><span>x</span>Close</p>
</div>
解决方案
您需要将单击侦听器附加到事件中.closeInfo
,.openInfo
然后在事件内部,需要toggle()其 parent 中的类.event
。
$('.closeInfo, .openInfo').on('click', function() {
let $closestEvent = $(this).closest('.event');
$closestEvent.find('.eventInfo, .closeInfo, .openInfo' ).toggle();
});
.event {
margin-bottom: 30px;
}
.eventInfo,
.closeInfo {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="event">
<p class="openInfo"><span>+</span>Details</p>
<p class="eventInfo"> Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit</p>
<p class="closeInfo"><span>x</span>Close</p>
</div>
<div class="event">
<p class="openInfo"><span>+</span>Details</p>
<p class="eventInfo"> Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit.Lorem ipsum dolor sit amet, consectetur adipiscing elit</p>
<p class="closeInfo"><span>x</span>Close</p>
</div>
推荐阅读
- python-3.x - 在 aws lambda 中完成工作之前对请求的 200 ok 响应
- javascript - 在 dom 更改元素的顺序后,聚合物 2 铁选择器选定的元素不会更新
- javascript - TypeError [ERR_INVALID_ARG_TYPE]:“文件”参数必须是字符串类型。接收到的类型对象
- algorithm - 编译器能否优化变量以使用少于一个字节的空间?
- python - 将函数链接到python中的按钮 - 使用参数关闭窗口
- java - JSReport API 使用 Java 从响应中保存 PDF
- go - 当参数与工作示例相同时,为什么 Elm 不会为 JSON 数据示例编译这个 HTTP 请求?
- java - 带有 div.span 的复选框未单击
- google-apps-script - 平均每次执行 9 秒的脚本,每次执行交付 145 秒
- xamarin.forms - Xamarin Forms Frame.IsClippedToBounds 在 Android 上不起作用