为什么我的javascript变量没有在我的函数中正确使用
Why is my javascript variable not being used properly in my function?
我正在创建一个可能在单个页面上包含多个jQuery幻灯片的站点。我使用的第三方幻灯片代码要求每个幻灯片都有一个唯一的ID,在javascript和存放图像的div中使用。
目前我正在生成一个随机数的页面:
var postID = ((Math.random() * 1e6) | 0);)
在每个幻灯片中,我将postID增加1:
postID++;
以避免重复的数字。然而,它似乎没有在javascript函数中使用正确的postID:
$(function() {$("#" + postID).webwidget_slideshow_dot({...)})}
这是该网站的链接:http://mobilegamepatterns.com
任何帮助都将非常感激!
这个代码块在你的代码中出现了两次:
$("#" + 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运行,一个将与第二个运行。但实际上,它们都将与第二个运行。它们都将在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/'
});
}
});
注意:上面的代码是未经测试的。可能有语法错误
相关文章:
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- 使用JAVASCRIPT转换货币.可以't通过我的函数设置转换后的输入文本字段的值
- 为什么我的函数没有被调用呢
- 为什么我的函数没有返回准确的计数
- 我的函数返回“未定义”
- 用我的函数jquery给出数据/参数
- 从未达到我的函数调用-ReactJs 0.12.0
- 我的函数不会返回要保存在数组中的对象
- 为什么点击或更改事件都没有触发我的函数
- 为什么如果我的函数中的范围被 javascript 解释器完全忽略了
- 我的函数调用在回显中不起作用
- 我的函数返回空.为什么
- 我的函数不起作用,Ajax调用,JQuery,调用外部?我不知道
- 如何在我的函数中使用 .bind()
- 在jQuery中,我的函数不起作用
- 为什么不是'我的函数未按预期在文档加载时运行
- 传递的变量不适用于我的函数-Javascript
- jQuery:我的函数需要一个反垃圾邮件
- 为什么不是't调用我的函数
- 为什么我的函数参数说是未定义的