代码之家  ›  专栏  ›  技术社区  ›  Jake Wilson

IE8 jQuery在z-index divs上的文本更改

  •  1
  • Jake Wilson  · 技术社区  · 16 年前

    我正在使用 jQuery Cycle plugin 在网页上循环浏览一些图片。

    每个图像还具有各种元数据(标题、描述),这些元数据也显示在页面上。每当图像更改时,标题和说明文本也将更改为该图像的标题和说明。

    <div id='slides'> 
        <a href="http://whatever.com">
             <img src="http://localhost/wordpress/wp-content/uploads/2010/09/slide1.jpg"/>
        </a>
        <a href="http://somewhere.com">
            <img src="http://localhost/wordpress/wp-content/uploads/2010/09/slide2.jpg"/>
        </a>
        <a href="http://nowhere.com">
             <img src="http://localhost/wordpress/wp-content/uploads/2010/09/slide3.jpg"/>
        </a>
    </div> 
    <div id='slideshow_text'> 
        <div id='ss_title'>The title goes here</div> 
        <div id='ss_desc'>The description goes here</div> 
    </div>
    

    JavaScript非常简单:

    jQuery(document).ready(function(){
        jQuery('#slides').cycle({
            fx:         'fade',
            speed:      1000,
            timeout:    10000,
            after:     alterSlideText,
        });
    });
    

    这个 alterSlideText javascript函数非常简单。基本上就是这样:

    jQuery('div#ss_title').html(slides_array[slideNum]['title']);
    jQuery('div#ss_desc').html(slides_array[slideNum]['desc']);
    

    这个 slides_array 只是每张幻灯片的标题和说明的数组。因此,根据当前显示的幻灯片,它会选择合适的标题和描述来放在div中。

    所以总的来说,设置非常简单和简单。图像变化。然后文本更改。

    现在问题 -这一切在moz和webkit中都非常有效。但在IE中,只有将鼠标移动到 slides div或 slideshow_text 如果我把它放在那里,文本就不会改变。一旦我将鼠标移到该分区中,将其调到适当的文本。

    一个重要的注意事项 幻灯片文本 DIV有一个非常高的z索引值(1000),它实际上浮动在图像的一部分上。我刚刚确认了其他带有正常z索引值的DIV中的文本的变化很好。只有这些具有高z索引值的div在鼠标悬停之前不会改变。

    有人知道这是为什么以及如何解决它吗?

    1 回复  |  直到 16 年前
        1
  •  1
  •   Jake Wilson    16 年前

    我通过在 alterSlideText 功能:

    // Force IE to refresh itself
    jQuery('div#slides').blur();
    jQuery('div#slides').focus();
    

    很好的IE开发人员。去找一份不同的工作。