Javascript jQuery DataTables-fnDestroy后忽略宽度设置(Coffeescript)

Javascript jQuery DataTables-fnDestroy后忽略宽度设置(Coffeescript),javascript,jquery,coffeescript,datatables,jquery-datatables,Javascript,Jquery,Coffeescript,Datatables,Jquery Datatables,我试图创建一个表,当您单击任何行的第一列时,它的内容将以某种“更多详细信息”的方式更改。当我第一次渲染表格时,它很好,但是当我再次渲染时,宽度设置不起作用,表格向右溢出,忽略我设置的宽度 这基本上就是我的代码所做的: MyTable = class module.MyTable constructor: (@my_data) -> setup_table() setup_table: -> @datatable = $('#my-da

我试图创建一个表,当您单击任何行的第一列时,它的内容将以某种“更多详细信息”的方式更改。当我第一次渲染表格时,它很好,但是当我再次渲染时,宽度设置不起作用,表格向右溢出,忽略我设置的宽度

这基本上就是我的代码所做的:

MyTable = class module.MyTable
    constructor: (@my_data) ->
        setup_table()

    setup_table: ->
        @datatable = $('#my-datatable').dataTable
            bAutoWidth: false
            bPaginate: false
            bSort: true
            bFilter: false
            bRetrieve: true
            iDisplayLength: 50
            aaData: @my_data
            aoColumns: [{
                sWidth: '200px'
                fnRender: (obj) =>
                    # do some stuff
            }, {
                sWidth: '150px'
                fnRender: (obj) =>
                    # do some other stuff
            }]
            fnRowCallback: (row, data) =>
                key = row.cells[0].firstChild.id
                $(row.cells[0].firstChild).unbind().click( () =>
                    @my_data = @get_data(key)
                    @datatable.fnDestroy()
                    @setup_table()
                )
                row

    get_data: (key) ->
        # do some stuff
(我意识到
fnRender
已被弃用。)

生成标记的方式如下:

<div class="dataTables_wrapper" id="my-datatable_wrapper">
    <table id="my-datatable">
        <thead>
            <tr>
                <th class="sorting_asc" rowspan="1" colspan="1" style="width: 200px;">
                    yada yada
                </th>
                <th class="sorting" rowspan="1" colspan="1" style="width: 150px;">
                    yada yada
                </th>
            </tr>
        </thead>
        <tbody style="display: table-row-group;">
            <tr class="odd">
                <td class="sorting_1">
                    foo
                </td>
                <td>
                    bar
                </td>
            </tr>
            <tr class="even">
                ...and so on
            </tr>
            ... and so on
        </tbody>
    </table>
</div>

雅达雅达
雅达雅达
福
酒吧
等等
... 等等
所以。。。有什么好处?
fnDestroy
没有做我认为应该做的事吗

编辑:为了它的价值,我尝试使用
fnClearTable()
fnAddData()
也没有用。

经过多次尝试和磨难,我发现问题在于,尽管我告诉了datatables,任何不适合单元格的文本都会导致单元格拉伸。然后,解决方案是添加一些溢出CSS:

table#my-datatable td {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
由于这导致单元格被切断,我在单元格中添加了
title
s。实际上,我正在使用,但我认为jQuery中的等价物应该是这样的:

addTitles: ->
    $('table#my-datatable td').each ->
        $cell = $(this)
        $cell.attr('title', $cell.text())