我正在使用Jquery Supersized插件,想要一种更好的方式来创建所使用的图像列表。
我在这里发现了同样的问题,jQuery Supersized: Load images from LI,但我在实现解决方案时遇到了问题。
我有一个UL,图像的名称如下:
<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提供的代码从这个列表创建一个数组:
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);
});我的问题是,当我试图在超大脚本中使用这个幻灯片数组时,它给我一个错误“‘幻灯片’未定义”
我的超大代码看起来像这样:
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
对我做错了什么有什么建议吗?
发布于 2012-12-28 05:24:22
你的超文本标记语言与你的javascript不匹配,你没有一个.image类,并且确保你没有在一个不同的DOM ready作用域中初始化这个超大的插件:
$(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
});
});https://stackoverflow.com/questions/14061362
复制相似问题