我有这种结构,并且在要求控制台记录“已加载的元数据”中的变量时,我总是得到正确的持续时间号码,但在这些听众之外,它始终为0表示dur1和dur2。
HIMAGELIST
显然,我通常想在这些事件监听器之外使用变量。 我怎样才能做到这一点?
答案 0 :(得分:1)
你需要做三次改变......
将dur1和dur2的var声明移到文档就绪函数之外,以便它们随处可用:
var dur1 = dur2 = dur3 = 0;
$(document).ready(function() {
var video1 = $('.video1'),
video2 = $('.video2');
不要将它们声明为loadedmetadata
函数中的var:
dur1 = video1[0].duration;
不要尝试立即显示它们(正如您当前的“外部”那样),因为它到达该代码并在元数据加载函数有机会运行之前显示初始值。您可能希望设置一个标志以指示元数据已加载,或者只是依赖于计时器
setTimeout('console.log(\'outside: \' + dur1, dur2)', 1000);