我正在创建一个可能在单个plage上包含多个jQuery幻灯片的网站。我正在使用的第三方幻灯片代码要求每个幻灯片都有一个唯一的ID,用于存放图像的javascript和div。
目前我正在页面中生成一个随机数:
var postID = ((Math.random() * 1e6) | 0);)
在每个幻灯片帖子中,我将postID递增1:
postID++;
避免重复的数字。但是,它似乎没有在javascript函数中使用正确的postID:
$(function() {$("#" + postID).webwidget_slideshow_dot({...)})}
以下是该网站的链接:http://mobilegamepatterns.com
非常感谢任何帮助!
答案 0 :(得分:0)
您的代码中有两次这样的阻止:
$("#" + postID).webwidget_slideshow_dot({
slideshow_time_interval: '',
slideshow_window_width: '320',
slideshow_window_height: '480',
slideshow_title_color: '#17CCCC',
soldeshow_foreColor: '#000',
directory: 'http://mobilegamepatterns.s3.amazonaws.com/images/'
});
我认为您认为,因为它们在您的页面中的位置,一个将使用第一个ID运行,一个将与第二个ID一起运行。但实际上,它们都将与第二个一起运行。它们都将在DOM准备就绪后运行,并且它们都将使用postID的当前值。由于您在页面加载时更改postID,因此它将是最后一个postID ++之后的任何内容。
如果您打算以这种方式编写页面,则无需在onReady上运行此代码,而是在为div分配新ID后立即运行它。
你可以更干净,在页面加载时全部完成而不使用ID。
$(function() {
var slideShowDivs = $('.webwidget_slideshow_dot');
$.each(slideShowDivs, function(i, currentDiv) {
$(currentDiv).webwidget_slideshow_dot({
slideshow_time_interval: '',
slideshow_window_width: '320',
slideshow_window_height: '480',
slideshow_title_color: '#17CCCC',
soldeshow_foreColor: '#000',
directory: 'http://mobilegamepatterns.s3.amazonaws.com/images/'
});
}
});
注意:上述代码未经测试。它可能有语法错误。