为什么somethingSlider在最后一张幻灯片中禁用我的自定义js方法?

时间:2011-01-29 12:34:40

标签: php javascript jquery anythingslider

我遇到了一个非常奇怪的问题,我不知道如何解决。基本上,我正在使用任何滑动,一切都工作正常。在每个幻灯片中有5个图像,当用户将鼠标悬停在它们上方时,会出现一个小图像标题,当用户将其移出图片时,标题会消失。我有3张幻灯片与这些图像,所以总共15张图像。现在 - 该功能在前2张幻灯片上工作正常但在最后一张幻灯片上没有(即包含10-15张图片的幻灯片)有人知道为什么吗? 这是我用来显示标题的代码:

<script type="text/javascript">

function is_child_of(parent, child) {
            if( child != null ) {           
                while( child.parentNode ) {
                    if( (child = child.parentNode) == parent ) {
                        return true;
                    }
                }
            }
            return false;
        }
function hide_thumb_caption(element, event, id) {
            var current_mouse_target = null;
            if( event.toElement ) {             
                current_mouse_target             = event.toElement;
            } else if( event.relatedTarget ) {              
                current_mouse_target             = event.relatedTarget;
            }
            if( !is_child_of(element, current_mouse_target) && element != current_mouse_target ) {
                $('#slider_thumb_'+id).slideUp('fast');
            }
        }

function show_thumb_caption(id) 
{
            $('#slider_thumb_'+id).slideDown('fast');
}
</script>

...在内部幻灯片中我正在使用此代码来调用这些方法:

<div class="top_slider_thumbs" onmouseover="show_thumb_caption(<?php the_ID(); ?>);" onmouseout="hide_thumb_caption(this, event, <?php the_ID(); ?>);">

这就是字幕div的结构:

<div class="top_slider_cap" id="slider_thumb_<?php the_ID(); ?>"><?php the_title();?></div>

1 个答案:

答案 0 :(得分:1)

主要问题是AnythingSlider会创建第一个和最后一个面板的克隆。它将第一个面板的克隆放在最后,将最后一个面板的克隆放在开头。主要原因是当点击最后一个面板上的下一个或点击第一个面板时,使得inifinte幻灯片显得平滑。

因为你的标题幻灯片有id,所以脚本会找到第一个(克隆)面板中包含的id,而不是你想要的面板。

最新版本的AnythingSlider(1.5.7+)做了两件事:

  1. 现在它完全删除了克隆面板中的所有id
  2. 如果将新的infiniteSlides选项设置为false,则根本不会克隆面板。如果为false,则单击最后一个面板上的next将“回放”内容。然后单击第一个面板上的上一个将快速前进幻灯片。