Jquery 在点击事件后 class 只显示一个项目
Jquery Show just one Item by the same class after click-event
我是脚本编写新手 Jquery/Javascript,实际上我遇到了一些困难。
我怎样才能通过相同的 class 显示一个项目而不影响其他项目?
我的代码:
$(function() {
$('.embedContainer > .myPosterImage').on('click', function() {
$('.embedContainer > .myPosterImage').hide();
$('.embedContainer > embed').show();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="embedContainer">
<img class="myPosterImage" src="img/websites/01_documentation.jpg" data-original="img/websites/full/01_full.jpg" />
<embed src="img/websites/Concept.pdf" width="563.41" height="375.98"></embed>
</div>
<div class="embedContainer">
<img class="myPosterImage" src="img/websites/01_documentation.jpg" data-original="img/websites/full/01_full.jpg" />
<embed src="img/websites/Concept.pdf" width="563.41" height="375.98"></embed>
</div>
非常感谢。
第一行将隐藏所有这些,这可能是你想要做的(如果你想折叠所有并展开点击的,例如):
$('.embedContainer > .myPosterImage').hide();
但是正如您所发现的,第二行还将显示所有这些:
$('.embedContainer > embed').show();
您可以做的是从被单击的元素开始遍历 DOM(单击事件处理程序中的 this
)。在这种情况下,您将向上遍历 DOM(例如使用 closest()
)到一个公共父元素,然后返回(例如使用 find()
)到目标元素。
像这样:
$(this).closest('.embedContainer').find('embed').show();
我是脚本编写新手 Jquery/Javascript,实际上我遇到了一些困难。 我怎样才能通过相同的 class 显示一个项目而不影响其他项目?
我的代码:
$(function() {
$('.embedContainer > .myPosterImage').on('click', function() {
$('.embedContainer > .myPosterImage').hide();
$('.embedContainer > embed').show();
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="embedContainer">
<img class="myPosterImage" src="img/websites/01_documentation.jpg" data-original="img/websites/full/01_full.jpg" />
<embed src="img/websites/Concept.pdf" width="563.41" height="375.98"></embed>
</div>
<div class="embedContainer">
<img class="myPosterImage" src="img/websites/01_documentation.jpg" data-original="img/websites/full/01_full.jpg" />
<embed src="img/websites/Concept.pdf" width="563.41" height="375.98"></embed>
</div>
非常感谢。
第一行将隐藏所有这些,这可能是你想要做的(如果你想折叠所有并展开点击的,例如):
$('.embedContainer > .myPosterImage').hide();
但是正如您所发现的,第二行还将显示所有这些:
$('.embedContainer > embed').show();
您可以做的是从被单击的元素开始遍历 DOM(单击事件处理程序中的 this
)。在这种情况下,您将向上遍历 DOM(例如使用 closest()
)到一个公共父元素,然后返回(例如使用 find()
)到目标元素。
像这样:
$(this).closest('.embedContainer').find('embed').show();