将现有对象检索到变量中

Retrieve existing object into variable?

本文关键字:变量 检索 对象      更新时间:2023-09-26

在我的页面上,我最初声明变量var as,它通过使用createAll插件创建一个对象…我指的是这个插件:http://kolber.github.io/audiojs/docs/

为了让插件工作,这个对象需要被创建。所以之后,我通过ajax加载一些联系人和插件需要应用到这个新内容,所以我再次创建这个var as来创建对象,但是现在有两个类似的对象在一个页面上冲突。我想知道它有一种方式,我可以使var as得到创建后ajax调用等于一个页面上的现有对象?

我试着通过做alert(as);来查看var as里面的内容。这返回[Object object]

编辑

这是控制台日志打印出来的内容(这是原始的,第一个对象)

Object
duration: 1
element: HTMLAudioElement
loadStartedCalled: false
loadedPercent: 0
mp3: null
playing: false
settings: Object
source: HTMLAudioElement
wrapper: HTMLDivElement
__proto__: Object

这是创建对象的方式,但我相信你需要很好地了解这个插件才能理解

// Initialize audio js
      audiojs.events.ready(function() {
          var as = audiojs.createAll({

          });
});

我已经测试了一个可行的解决方案。请注意,代码只是为了展示它的工作原理-具体请参阅下面的解释。

var as;
audiojs.events.ready(function () {
    as = audiojs.createAll();
});
$(document).ready(function () {
    setTimeout(function () {
        var mp3 = "http://s3.amazonaws.com/audiojs/02-juicy-r.mp3"; // audio.js example
        // creating new audio element, yours is probably added via ajax
        // [0] used to get DOM element instead of jQuery object.
        var audio = $('<audio/>', {id: 'test'}).appendTo('body').attr('src', mp3)[0];
        var testAS = audiojs.create(audio); // initialise new audio.js player
        as.push(testAS); // add "testAS" object to "as" array of objects
        console.log(as); // log "as" - now holds the original objects + "testAS"
    }, 5000); // timeout used for testing, above code can be in ajax success function instead
});

mp3audio变量只是用作演示,因为我不知道你的ajax函数的结构。

Audio.js有一个.create()函数,它接受一个元素作为参数并返回一个对象。原来的as变量是一个包含所有audio对象的数组,所以你可以把新对象推到末尾。

通过在函数之外定义as,你可以使它成为全局的意思,任何东西都可以访问它,任何新的音频。js对象都可以追加。