jquery - 我的点击功能仅适用于 jquery 的第一部分,而不适用于第二部分。为什么它不让我在新的左侧图像到位时单击它
问题描述
我正在创建一个图像轮播,其他图像悬停在聚焦的图像后面。正如您在我的小提琴中看到的,当您单击左侧的第一个图像时,单击事件有效,但不适用于出现在那里的下一个图像。关于我做错了什么的任何倾向?
我是 jquery 的新手,我确信有一种更简单的方法可以做到这一点,但我正在努力解决这个问题,但我每次都被难住了。这是我的小提琴...... https://jsfiddle.net/hexen77/9xoqLgzs/16/
<div>
<img id="content-1" class="position-1" src="https://www.gstatic.com/webp/gallery/1.sm.jpg">
<img id="content-2" class="position-2" src="https://www.gstatic.com/webp/gallery/2.sm.jpg">
<img id="content-3" class="position-3" src="https://www.gstatic.com/webp/gallery/3.sm.jpg">
<img id="content-4" class="position-4" src="https://www.gstatic.com/webp/gallery/4.sm.jpg">
</div>
.position-1 {
position: absolute;
left: 30%;
transform: scale(1.1);
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.position-2 {
opacity: .4;
position: absolute;
z-index: -2;
left: 10%;
}
.position-3 {
opacity: .4;
right: 10%;
position: absolute;
z-index: -2;
}
.position-4 {
opacity: 0;
z-index: -10;
left: 30%;
position: absolute;
}
$("#content-2.position-2").click(function() {
$("#content-2.position-2").addClass(" position-1");
$("#content-2.position-2").removeClass("position-2 ");
$("#content-3.position-3").addClass(" position-4");
$("#content-3.position-3").removeClass("position-3 ");
$("#content-4.position-4").addClass(" position-2");
$("#content-4.position-4").removeClass("position-4 ");
$("#content-1.position-1").addClass(" position-3");
$("#content-1.position-1").removeClass("position-1 ")
});
$("#content-4.position-2").click(function() {
$("#content-4.position-2").addClass(" position-1");
$("#content-4.position-2").removeClass("position-2 ");
$("#content-2.position-1").addClass(" position-3");
$("#content-2.position-1").removeClass("position-1 ");
$("#content-1.position-3").addClass(" position-4");
$("#content-1.position-3").removeClass("position-3 ");
$("#content-3.position-4").addClass(" position-2");
$("#content-3.position-4").removeClass("position-4 ")
});
解决方案
您需要将事件绑定到文档,因为您正在更改类。
$(document).on("click","#content-2.position-2", function() {
$("#content-2.position-2").addClass(" position-1");
$("#content-2.position-2").removeClass("position-2 ");
$("#content-3.position-3").addClass(" position-4");
$("#content-3.position-3").removeClass("position-3 ");
$("#content-4.position-4").addClass(" position-2");
$("#content-4.position-4").removeClass("position-4 ");
$("#content-1.position-1").addClass(" position-3");
$("#content-1.position-1").removeClass("position-1 ")
});
$(document).on("click","#content-4.position-2",function() {
$("#content-4.position-2").addClass(" position-1");
$("#content-4.position-2").removeClass("position-2 ");
$("#content-2.position-1").addClass(" position-3");
$("#content-2.position-1").removeClass("position-1 ");
$("#content-1.position-3").addClass(" position-4");
$("#content-1.position-3").removeClass("position-3 ");
$("#content-3.position-4").addClass(" position-2");
$("#content-3.position-4").removeClass("position-4 ")
});
这是一个工作小提琴
推荐阅读
- c# - 删除 asp.net 文本标签中生成的 Span 标签
- php - 如何为 wp 中的某些用户隐藏特定页面(来自 wp-admin)?
- class - 关于项目管理中关系类型的UML类图
- c - 如何在与 c 的 http 连接中获得特殊的内容类型?
- sql-server - 当我的所有其他列都包含在我的报告中时,如何对重复值求和?
- ios - 如何在 iOS 的 WebView 中从照片库或相机上传图像
- crash - PCIe 问题——为什么 pciehp 给出矛盾的日志信息
- php - PHP:PDO+mysql 不使用管道符号 (|)
- vhdl - 获得少量输入的正确值。不适用于 4*4 乘法器中的所有组合
- magento2 - 在前端的 Magento2 (2.2.5) uicomponent 表单中,SAVE 按钮未与表单一起出现