Javascript jQuery在多个元素上触发Click事件(我只想要1个)
当我的覆盖出现时,一切都很好,但是我添加了一些代码来关闭覆盖,但是即使我只是单击我的箭头,这个代码也会被触发。下面是被触发的代码,当我没有单击箭头来更改图像时,这是正常的。但当我点击箭头时,背景(覆盖)也被触发,因此图像在变化,但覆盖也在隐藏Javascript jQuery在多个元素上触发Click事件(我只想要1个),javascript,jquery,html,css,Javascript,Jquery,Html,Css,当我的覆盖出现时,一切都很好,但是我添加了一些代码来关闭覆盖,但是即使我只是单击我的箭头,这个代码也会被触发。下面是被触发的代码,当我没有单击箭头来更改图像时,这是正常的。但当我点击箭头时,背景(覆盖)也被触发,因此图像在变化,但覆盖也在隐藏 $('#overlay').click(function() { $(this).fadeOut('slow'); }); 我怎样才能在不点击背景覆盖的情况下使用箭头呢?如果你打开这个项目,你就会明白我在说什么 打开项目: 打开存储库: 您想使
$('#overlay').click(function() {
$(this).fadeOut('slow');
});
我怎样才能在不点击背景覆盖的情况下使用箭头呢?如果你打开这个项目,你就会明白我在说什么
打开项目:
打开存储库:
您想使用
event.stopPropagation()
:
这可以防止事件冒泡(由其他元素触发)您要使用
事件.stopPropagation()
:
这可以防止事件冒泡(由其他元素触发)最外面的元素是
#overlay
。这意味着,无论您在哪里单击,您都将始终单击您的#overlay
元素。这就是始终触发回调并关闭图像的方式
要解决问题并仅在单击图像时关闭图像,您可以使用:
$('#changeImage').click(function() {
$(this).closest('#overlay').fadeOut('slow');
});
您最外层的元素是
#叠加
。这意味着,无论您在哪里单击,您都将始终单击您的#overlay
元素。这就是始终触发回调并关闭图像的方式
要解决问题并仅在单击图像时关闭图像,您可以使用:
$('#changeImage').click(function() {
$(this).closest('#overlay').fadeOut('slow');
});
好的,有很多代码需要整理,所以我猜你的覆盖是
而你的事件。目标
就在这里面:
<div class="mainCenter">
<div class="container">
<div id="topFixed">
<input type="text" id="search" placeholder="Search">
</div>
<ul id="gallery">
.......
好的,有很多代码需要整理,所以我猜你的覆盖是
而你的事件。目标
就在这里面:
<div class="mainCenter">
<div class="container">
<div id="topFixed">
<input type="text" id="search" placeholder="Search">
</div>
<ul id="gallery">
.......
你是最棒的!!非常感谢你!你是最棒的!!非常感谢你!