【问题标题】:setting content of element with jquery via text() duplicates the text通过 text() 使用 jquery 设置元素的内容会复制文本
【发布时间】:2013-01-08 18:00:22
【问题描述】:

我有一个显示投资组合的单页网站。基本上它由一个图像列表组成,这些图像以sudoslider的幻灯片形式显示

加载新的幻灯片(在本例中为图像)后,应更新图像的描述。

由于某种原因,描述会显示两次,如您在this version which is created via wordpress 所见。奇怪的是我有一个 static version of this website 似乎不会产生这个问题,而 html/javascript/css 结构是 完全相同 相同的(只要我没有忽略某些东西)。

相关代码:

html 列表:

<section id="portfolio">
    <ul id="portfolio-ontwerpen" class="noscript">
        <li>
            <figure><img width="800" height="569" src="http://haendehoch.nl/wp/wp-content/uploads/2013/01/klinch1.jpg" class="attachment-large wp-post-image" alt="klinch1" /></figure>
            <figcaption>Klinch poster</figcaption>
        </li>
        <li>
            <figure><img width="800" height="565" src="http://haendehoch.nl/wp/wp-content/uploads/2013/01/hh_grid.jpg" class="attachment-large wp-post-image" alt="hh_grid" /></figure>
            <figcaption>Grid</figcaption>
        </li>
    </ul>
</section>

javascript:

var sudoSlider = $("#portfolio").sudoSlider({
    afterAniFunc:   $("aside figcaption").text($(this).find('figcaption').text()); },
});

$(this) 在这种情况下是指 current 幻灯片(当前列表项)

afterAniFunc 的 sudoslider 描述(基本上是下一张幻灯片动画完成后执行的函数)

afterAniFunc:false。与之前的 AniFunc 相同。它只是在动画(仍然是任何动画)完成后运行。 beforeAniFunc 如果使用 fade 不会执行多次,但如果使用 Continuous 仍然可以执行多次。

【问题讨论】:

    标签: javascript jquery text slideshow


    【解决方案1】:

    我不确定它是如何/为什么会发生的,但您似乎正在使用语句选择多个元素:

    $(this).find('figcaption').text()
    

    只选择第一个元素为我提供了正确的结果:

    $(this).find('figcaption').first().text()
    

    【讨论】:

    • 效果很好,tnx。仍然不知道为什么问题没有在静态版本中发生
    猜你喜欢
    • 2020-08-06
    • 2020-05-13
    • 2011-07-19
    • 2015-04-07
    • 1970-01-01
    • 2019-11-23
    • 2011-02-14
    • 2017-10-09
    • 1970-01-01
    相关资源
    最近更新 更多