如何避免代码重复,实现jQuery多图片点击全屏并隐藏其他图片?
简化图片点击放大逻辑的入门思路
嘿,完全懂你不想写12遍重复代码的心情——这事儿换谁都嫌麻烦!给你几个入门友好的简化方向,不用写一堆重复的选择器:
- 给所有图片加统一的类名:比如给每张图片都加上
image-item这个类,这样不管有多少张,都能通过一个选择器选中它们,不用再用image_one、image_two这种单独的id了。 - 利用
$(this)指代当前点击的图片:在点击事件里,$(this)就是你刚点的那张图,直接给它加increase_size类就行,不用再写具体的id选择器。 - 用兄弟选择器批量处理其他图片:不用一个个写隐藏其他11张的代码,用
.siblings('.image-item')就能选中当前图片之外的所有同类型图片,直接调用.hide()就搞定了。另外记得每次点击前,先把所有图片的increase_size类移除、恢复显示状态,避免之前的操作残留影响新的点击。 - 可选:事件委托(更灵活):如果你的图片是后来动态添加到页面的,或者想让代码更健壮,可以把点击事件绑定到图片的父容器上,比如
$('.image-wrapper').on('click', '.image-item', function() { ... }),这样不管后续加多少张图片,都不用重新绑定事件。
核心就是靠统一类名和相对选择器来避免重复代码,用$(this)精准定位当前操作的元素,这样不管是12张还是20张,代码都是一样的~
内容的提问来源于stack exchange,提问作者glittergirl
相关产品推荐
相关产品推荐

