0

我有一个引导表,它在开始时有一个不可见的列:data-visible="false"。列标题包含一个用于显示模式帮助对话框的按钮:

<script>

    // This is repeated for each column that have help button, 
    // some are visible at the start and some not.
    $("#helpButtonColumnX").click(function(event) {
        event.stopPropagation(); // Prevent ordering by the field 
                                 // when the button is pressed.
        console.log("Hey"); // Do something
        $('#modalDialogColumnX').modal('show');
    });
</script>

问题是,当用户更改希望查看哪些列时,此功能会丢失。(console.log是调试用的,确认没有调用该函数)。每列都有自己的按钮和模式,我以 X 为例。提前致谢。

编辑:这里是codeply

4

2 回答 2

0

我对此boostrap-table知之甚少,boostrap-table 可能正在添加/删除 html,这将导致 table 上的任何事件停止工作(因为在事件连接后添加了 html)。

快速浏览一下文档会发现有一个onColumnSwitch事件。

这为您提供了两种选择:

1 通过为事件添加事件句柄来重新添加单击处理程序onColumnSwitch,例如:

$("#table").on("column-switch.bs.table", function() {
     // this would be easier if you put it in a separate function 
     // then you could call it from here and startup
     $("#helpButtonColumnX").click(function(event) {
     ...
     });
});

2 使用事件委托而不是直接连接事件,例如:

$("document").on("click", "#helpButtonColumnX", function() {
    ...
});

第二个选项可能是您最好的选择,但存在(一些小)性能问题(您可能不会注意到)。

于 2015-08-28T20:23:58.350 回答
0

我想知道这个解决方案是否适合你?单击列标题中的 select2 框时,我遇到了类似的问题。引导表作者提供了我在此处发布的解决方案。

于 2015-08-30T03:09:52.640 回答