带有rails gem的可排序bootstrap表

时间:2017-04-10 16:58:38

标签: jquery ruby-on-rails twitter-bootstrap

我正在使用bootstrap-table-rails gem为我的表创建可排序的功能。它工作正常,除非我通过JS更改表的字段中的数据。 我的代码如下所示:

<table data-toggle="table" class="table table-responsive">
    <thead>
        <tr>
            <th data-field="date" data-sortable="true">TITLE</th>
            <th data-field="deadline" data-sortable="true">DEADLINE</th>
            <th data-field="accept-job" data-sortable="true"></th>
        </tr>
     </thead>
     <tbody>
         <tr>
             <td>Sample data</td>
             <td>Sample data</td>
             <td class="accept_field"><button class="btn accept_btn">Accept Job</button></td>
         </tr>
         <tr>
             <td>Sample data</td>
             <td>Sample data</td>
             <td>Sample data</td>
         </tr>
    </tbody>

这个表基本上包含两行,其中一行填充虚拟数据,另一行填充动态数据(deadline_field)。我通过JS更改数据:

function Timer(duration, display, deadline) {
    var timer = duration, hours, minutes, seconds;
    setInterval(function () {
        hours = parseInt((timer /3600)%24, 10)
        minutes = parseInt((timer / 60)%60, 10)
        seconds = parseInt(timer % 60, 10);

        hours = hours < 10 ? "0" + hours : hours;
        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.text(hours + ":" + minutes + ":" + seconds);
        deadline.text(hours + ":" + minutes + ":" + seconds);
        --timer;
    }, 1000);
};

$(".accept-btn").click(function() {
    var twentyFourHours = 24 * 60 * 60;
    // Show timer element on page
    var display = $('.countdown').show();
    var deadline = $('.deadline_field');
    Timer(twentyFourHours, display, deadline);
});

此功能执行以下操作: 它计算时间从24小时开始。 2.它在其他页面和表格中显示截止日期deadline_field。它工作正常,但是当我尝试对表进行排序时,deadline_field值被更改为Sample data,即排序不再起作用。 我非常感谢对这个问题的任何想法,谢谢。

1 个答案:

答案 0 :(得分:0)

经过几个小时的研究,我决定切换到sorttable.js插件,这对我来说很好。