繁体   English   中英

将字符串转换为JS对象

[英]Convert string to JS object

我知道这是一个重复的问题,但是我无法弄清楚该怎么办。 我想使用JS Buzz库播放音频。 请检查以下

var pg1 = new buzz.sound("oimages/music/as.mp3");
var pg2 = new buzz.sound("oimages/music/zx.mp3");
var pg3 = new buzz.sound("oimages/music/as.mp3");

在某些事件中,我想播放此音频。 这里的1、2和3是页码。 请检查以下

$("#flipbook").bind("turned", function (event, page, view) {;
    bog ='pg'+page; // page is the number of page here
    window.bog.play(); //error
});

它给我以下错误

未捕获的TypeError:window.bog.play不是函数

请指导。

简单的错误。 您试图错误地引用变量。 bog不是名字,但其中包含名字...

$("#flipbook").bind("turned", function (event, page, view) {;
    bog ='pg'+page; // page is the number of page here
    window[bog]play(); //error
});

假设pg1..3变量具有全局作用域。 如果他们不这样做,则将声明更改为...

window.pg1 = new buzz.sound("oimages/music/as.mp3");

等等..

因为bog ='pg'+page; 是一个字符串,而不是对声音文件的引用。

您需要引用声音,前提是它们在全局范围内,您可以使用方括号表示法

var bog = window['pg'+page];

评估将达到目的:

$("#flipbook").bind("turned", function (event, page, view) {;
    bog ='pg'+page;
    eval('window.' + bog + '.play()');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM