JQuery 仅针对特定 class 的一个元素的事件
JQuery event for only one element of a specific class
我是 jQuery 的新手,似乎无法理解如何自己解决这个问题。
问题是,当我用相同的 class 按下一个元素 (div) 时,所有其他元素也会打开。
这是显示问题的 gif。 - https://gyazo.com/8315d69878d7e5efb5a699798343b278
<div class="middle-side">
<div class="items"><img src="img/services/1.jpg" alt="">
<div class="blue-img"></div>
</div>
<div class="items"><img src="img/services/2.jpg" alt="">
<div class="blue-img"></div>
</div>
<div class="items"><img src="img/services/3.jpg" alt="">
<div class="blue-img"></div>
</div>
</div>
$(document).ready(() => {
$('.items').on('click', () => {
$('.blue-img').slideToggle();
})
})
问题是因为您选择了点击处理程序中的所有 .blue-img
元素。
要解决此问题,请使用 this
关键字来引用单击的 .items
元素,然后 find()
引用其中的 div
。试试这个:
$(document).ready(() => {
$('.items').on('click', (e) => {
$(e.target).find('.blue-img').slideToggle();
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="middle-side">
<div class="items">
A
<img src="img/services/1.jpg" alt="">
<div class="blue-img">Blue-img A</div>
</div>
<div class="items">
B
<img src="img/services/2.jpg" alt="">
<div class="blue-img">Blue-img B</div>
</div>
<div class="items">
C
<img src="img/services/3.jpg" alt="">
<div class="blue-img">Blue-img C</div>
</div>
</div>
我是 jQuery 的新手,似乎无法理解如何自己解决这个问题。
问题是,当我用相同的 class 按下一个元素 (div) 时,所有其他元素也会打开。 这是显示问题的 gif。 - https://gyazo.com/8315d69878d7e5efb5a699798343b278
<div class="middle-side">
<div class="items"><img src="img/services/1.jpg" alt="">
<div class="blue-img"></div>
</div>
<div class="items"><img src="img/services/2.jpg" alt="">
<div class="blue-img"></div>
</div>
<div class="items"><img src="img/services/3.jpg" alt="">
<div class="blue-img"></div>
</div>
</div>
$(document).ready(() => {
$('.items').on('click', () => {
$('.blue-img').slideToggle();
})
})
问题是因为您选择了点击处理程序中的所有 .blue-img
元素。
要解决此问题,请使用 this
关键字来引用单击的 .items
元素,然后 find()
引用其中的 div
。试试这个:
$(document).ready(() => {
$('.items').on('click', (e) => {
$(e.target).find('.blue-img').slideToggle();
})
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="middle-side">
<div class="items">
A
<img src="img/services/1.jpg" alt="">
<div class="blue-img">Blue-img A</div>
</div>
<div class="items">
B
<img src="img/services/2.jpg" alt="">
<div class="blue-img">Blue-img B</div>
</div>
<div class="items">
C
<img src="img/services/3.jpg" alt="">
<div class="blue-img">Blue-img C</div>
</div>
</div>