对于那些熟悉javascript的人来说,这将是一块蛋糕。我想将waveurfer对象放入我的数据表的render函数中。当我点击数据表中的按钮时,渲染器会在运行时创建一个id =“demo”的div。
渲染数据表的功能
"renderer": function ( api, rowIdx ) {
....
return data ?
$('<table/>').append( data ).prop('outerHTML') + $("<div></div>", {"id":"demo"}).prop('outerHTML') : false;
}
将使用id =“demo”
填充容器的音频对象var wavesurfer = Object.create(WaveSurfer);
wavesurfer.init({
container: document.querySelector('#demo'),
waveColor: 'violet',
progressColor: 'purple'
});
wavesurfer.load('//upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg');
当页面加载时我收到此错误:
Uncaught Error: Container element not found
这是因为我还没有点击创建div的按钮。
我希望能够使用不同的文件(.load)为每一行呈现对象? 你能帮帮我吗
答案 0 :(得分:2)
我建议您使用.wawe
类而不是多个id
,并将文件url
设置为元素本身的属性,ex {{1 }}:
{"class":"wawe", url:"//upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg"}
当点击一行触发子行时,它会立即获得类return data
? $('<table/>').append( data ).prop('outerHTML') + $("<div></div>", {"class":"wawe", url:"//upload.wikimedia.org/wikipedia/en/4/45/ACDC_-_Back_In_Black-sample.ogg"}).prop('outerHTML')
: false;
。因此,您可以在.parent
上创建点击处理程序,找到.parent
行(始终是下一行).child
元素,并在初始化WaveSurfer时使用.wawe
属性:
url
演示 - &gt;的 http://jsfiddle.net/fxojLmvd/ 强>
希望这能解决问题。我以前不认识WaveSurfer,谢谢你:)