如何使用在运行时创建的对象呈现数据表单元格

时间:2015-07-02 17:59:52

标签: javascript jquery datatables

对于那些熟悉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)为每一行呈现对象? 你能帮帮我吗

1 个答案:

答案 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,谢谢你:)