簡體   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