问题 jQuery-JTable:为行添加点击事件?


我必须按照代码来显示我的用户表,这是由JTable实现的。

<script type="text/javascript">
    $(document).ready(function() {              
        $('#userTableContainer').jtable({
            title: 'Users',
            selecting: false,
            paging: true,
            pageSize: 15,
            sorting: true,
            addRecordButton: false,
            saveUserPreferences: false,
            create: false,
            edit: false,
            actions: {
                listAction: 'user/getUsers.htm',
            },
            fields: {
                username: {
                    title: 'username'
                },
                firstname: {
                    title: 'firstname'
                },
                lastname: {
                    title: 'lastname'
                },
                company: {
                    title: 'company'
                }
             }
        });
        $('#userTableContainer').jtable('load');              
    });    

</script>

<div id="content">
    <h1>Users</h1>      

    <br />
    <div id="userTableContainer">

    </div>
</div>

是否可以为每一行添加自定义操作事件? 这样我就可以向我的控制器提交像“user / showUser.htm”这样的请求了。


6206
2018-04-08 14:08


起源

你的意思是在一行中添加一个按钮或什么?并打开一个弹出窗口,其中包含用户详细信息? - Jules Colle
对该行的操作,将打开用户详细信息或类似的任何内容。它甚至不必是一个弹出窗口,它也可以只是一个新页面,并不重要 - James Carter


答案:


这应该让你顺利:

$('#userTableContainer').jtable({
    ....
    recordsLoaded: function(event, data) {
        $('.jtable-data-row').click(function() {
            var row_id = $(this).attr('data-record-key');
            alert('clicked row with id '+row_id);
        });
    }
});

12
2018-04-09 12:57



谢谢!!!这就像魅力=) - James Carter
你能告诉我如何访问特定行的单元格的所有值。就像上面的代码一样,只提供作为键的列的值。 - Anurag Singh
@ user1334573自从我使用jtable以来已经很久了。试着打电话 console.log(data) 在里面 recordsLoaded 功能,看看有哪些数据可供使用。我有预感,所有记录都将在 data 目的。还有功能 getRowByKey() 可能会派上用场.. jtable.org/apireference#met-getRowByKey - Jules Colle
[Object {product_name =“we”,company =“tyr”,quantity =“50”,more ...},Object {product_name =“trf”,company =“yu”,quantity =“50”,more .. } - Anurag Singh
@ user1334573我相信它应该是 data.company 然后。或等待它看起来像一个数组。尝试 data[0].company,这应该让你回到公司的第一行。如果你想要一个简单的for循环,你可以迭代所有行。 - Jules Colle