javascript - 如何使用运行时创建的对象渲染数据表单元格

标签 javascript jquery datatables

对于熟悉 JavaScript 的人来说,这将是小菜一碟。我想将 wavesurfer 对象放入数据表的渲染函数中。当我单击数据表中的按钮时,渲染会在运行时创建一个 id="demo"的 div。

datatable的渲染函数

"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) 为每一行呈现对象? 你能帮我解决这个问题吗

最佳答案

我建议您使用一个 .wawe 类而不是多个 id,并将文件 url 设置为元素本身,ex {"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 行(总是下一行).wawe 元素并使用 url 初始化 WaveSurfer 时的属性:

table.on('click', 'tr.parent', function() {
   var wavesurfer = Object.create(WaveSurfer),
       container = $(this).next('tr').find('.wawe')[0];
    wavesurfer.init({
      container: container,
      waveColor: 'violet',
      progressColor: 'purple'
   });
  wavesurfer.load(container.getAttribute('url'));
});       

演示 -> http://jsfiddle.net/fxojLmvd/

希望这能解决问题。我以前不知道 WaveSurfer,谢谢你:)

关于javascript - 如何使用运行时创建的对象渲染数据表单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31191515/

相关文章:

javascript - 如果触发了单击事件,则阻止调用代码

javascript - 数据表搜索单击的元素

javascript - 尝试避免在 Domino XPage 中多次调用 jQuery

javascript - 如何向定义的日期添加天数

javascript - Jquery 在点击图片时切换

jQuery 变量传递

javascript - jQuery/Javascript - 根据子 Div 中的数字对父 Div 进行排序

javascript - 如何通过 id on live 加载特定的 php 文件以显示在悬停 div 上

javascript - Django 设计模式 - 在加载时填充客户端 JavaScript 变量的方法

javascript - 数据表默认列排序