【发布时间】:2013-09-05 17:32:35
【问题描述】:
当我在本例中单击 .zoom 时,我会注入 20(循环中的项目数量).big_image div。我只想插入一个,相对于我点击的项目。
$('.main img').each(function() {
var img = this;
$('.zoom').click(function() {
$(this).after('<div class="big_image"><img src="'+$(img).attr('src')+'"></div>');
});
});
我在这里简化了脚本。理想情况下,我只想知道如何修改点击功能(如果可能的话),因为还有其他与问题无关的事情。谢谢!
编辑:工作示例here。
缩放按钮应至少出现在图库中的前 2 张图像上(左上角)。如果它令人困惑,我试图让缩放按钮只出现在非常长/高的图像上。我也知道我应该拆分 setClass 函数,但还没有学会如何做到这一点:)
【问题讨论】:
-
您不应该在每个循环中绑定
.zoom单击 - 您将多次执行相同的绑定(除非您添加了 $(this).closest('.zoom')) -
.zoom是什么.main是什么,你也可以发布 html 吗?就像上面的皮特说的,你不必在每个里面都放点击处理程序 -
您正在为每个图像的每个 .zoom 元素添加一个点击侦听器。请向我们展示一些您的 html,以便我们提供更具体的帮助。
-
.main 是容器,.zoom 是根据每个循环内的不同参数注入的。 html 只是容器和带有图像的无序列表。对不起,我会把整个事情放到网上,但是还有很多其他的问题会分散大家的注意力! :)
-
用工作示例更新了问题
标签: javascript jquery click each