我正在尝试修复我的灯箱javascript中的小错误,同时尽可能保持编辑不引人注目。
问题在于主要产品形象。如果单击两个缩略图中的任何一个,图像将按预期加载到灯箱内。单击大图像会触发一个点击图库图像的事件,您可以看到灯箱开始弹出,但随后是< a>的默认事件。标记触发,图像在单独的窗口中加载。这个不应该发生,因为链接使用return false;
<a id="gallery-link" class="main" href="#" onclick="click($('gallery-image-0')); return false;" title="Gold Label Mattress">
<img id="gallery-image" src="/content/products/280x175/silentnight-ariel-miracoil-gold-label-limited-edition.jpg" alt="Gold Label Mattress">
</a>
除此之外,它只是一个标准的原型/ scriptaculous / lightbox2设置。
任何想法为什么返回false都不会返回false?令人难以置信的是令人沮丧。
编辑:IE6和8 DO按照说明返回false。目前的FF,Chrome和IE9都没有。
答案 0 :(得分:1)
不显眼的脚本通常意味着不使用内联属性。当前的最佳实践是在将元素添加到DOM后附加侦听器:
$('gallery-link').observe('click', function(event) {
click($('gallery-image-0'));
event.stop();
});
答案 1 :(得分:1)
您尝试在另一个事件被触发后返回false,该事件具有自己的一组操作。因此,您打算拨打return false
,但在此之前,gallery-image-0
会响应您的click()
来电,这可能已导致浏览器打开另一个页面。
这有意义吗?因此,您需要观察目标元素上的click
,并确保其以return false
或event.stop()
结尾。