我正在使用外部JavaScript插件,我无法通过点击缩略图列表来编辑和工作。
出于造型目的,我不得不将图像包装在<a>
中:
if(img.parent("a").length == 0){
img.wrap('<a />');
}
有没有办法可以为我插入的<a>
添加点击,然后让这个JavaScript插件调用点击图片的操作。
我尝试了这个但是不起作用并给出了错误:Too much recursion
:
$("#thumbs a").live("click", function(){
$(this).find("img").click();
});
答案 0 :(得分:2)
是。
if(!img.parent("a").length){
img.wrap('<a />').parent('a').bind('click', function() {
// ALL THE CODE!!!
});
}
您也不需要说if (something.length == 0)
因为它默认会返回0 ...所以你可以说,if (!something.length)
答案 1 :(得分:1)
Too much recursion
意味着某些东西一遍又一遍地循环,可能是无限的。您当前代码发生的原因是因为<a>
是<img>
的父级,因此<img>
上的任何点击事件都会向父级<a>
冒泡(搜索“事件”冒泡“在谷歌”。因此,您的代码基本上是在“当有人点击<a>
时触发点击<img>
然后<a>
(因为事件冒泡)” - 这当然会导致代码运行试。
如果JavaScript插件已将绑定事件绑定到图像上的点击,我不明白为什么您需要将点击事件绑定到仅点击图像的父<a>
。当用户点击<img>
时,你需要发生什么,而不包括你的jQuery代码?
答案 2 :(得分:0)
将e.stopPropagation();
添加到imgs的点击处理程序中。