首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery Supersized:如何使用从LI创建的数组?

jQuery Supersized:如何使用从LI创建的数组?
EN

Stack Overflow用户
提问于 2012-12-28 05:11:54
回答 1查看 1K关注 0票数 0

我正在使用Jquery Supersized插件,想要一种更好的方式来创建所使用的图像列表。

我在这里发现了同样的问题,jQuery Supersized: Load images from LI,但我在实现解决方案时遇到了问题。

我有一个UL,图像的名称如下:

代码语言:javascript
复制
<ul id="slide_list">
<li><div class="slide_src">pic1.jpg</div>
<div class="slide_head">head 1</div></li>

<li><div class="slide_src">pic2.jpg</div>
<div class="slide_head">head 2</div></li>

<li><div class="slide_src">pic3.jpg</div>
<div class="slide_head">head 3</div></li>

</ul>

然后,我使用jfriend00提供的代码从这个列表创建一个数组:

代码语言:javascript
复制
var slides = [];           
$("ul .image").each(function() {
    var this$ = $(this);
    var obj = {};
    obj.image = this$.text();
    obj.title = this$.nextAll(".slide_src").text();
    obj.thumb = this$.nextAll(".slide_head").text();
    slides.push(obj);
});​​​​​​​​​​​​​​​

我的问题是,当我试图在超大脚本中使用这个幻灯片数组时,它给我一个错误“‘幻灯片’未定义”

我的超大代码看起来像这样:

代码语言:javascript
复制
jQuery(function($){
    $.supersized({

        //Functionality
        slideshow               :   1,      //Slideshow on/off
        autoplay                :   1,      //Slideshow starts playing automatically
        start_slide             :   1,      //Start slide (0 is random)
        random                  :   0,      //Randomize slide order (Ignores start slide)
        slide_interval          :   5000,   //Length between transitions

        //Components
        navigation              :   0,      //Slideshow controls on/off
        thumbnail_navigation    :   0,      //Thumbnail navigation
        slide_counter           :   0,      //Display slide numbers
        slide_captions          :   0,      //Slide caption (Pull from "title" in slides array)
        slides                  : slides
    }); 
});

(为简洁起见,我删除了一些超大型选项代码)。

在控制台中显示幻灯片数组的内容

[object Object],[object Object],[object Object]所以我知道我做错了什么

如果我使用这个:slidesDisp = JSON.stringify(slides)

然后,数组在控制台[{"image":"pic1.jpg","title":"head 1"},{"image":"pic2.jpg","title":"head 2"},{"image":"pic3.jpg","title":"head 3"}]中完美地显示出来,但是当我在超大脚本中使用它时,什么也没有发生

slides: slidesDisp

对我做错了什么有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-28 05:24:22

你的超文本标记语言与你的javascript不匹配,你没有一个.image类,并且确保你没有在一个不同的DOM ready作用域中初始化这个超大的插件:

代码语言:javascript
复制
$(function() {

    var slides = [];    

    $("ul .slide_src").each(function() {
        var $this = $(this);
        var obj = {};
        obj.image = $this.text();
        obj.title = $this.next(".slide_head").text();
        slides.push(obj);
    });​​​​​​​​​​​​​​​

    $.supersized({
        // ...........other options
        slides                  : slides
    });
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14061362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档