如何防止bootstrap-table清除我的事件处理程序?

时间:2015-07-21 15:01:23

标签: javascript twitter-bootstrap event-handling bootstrap-table

我正在使用Bootstrap Table在我的网络应用中显示漂亮的表格。我发现当我的常规纯HTML <table>被转换为Bootstrap表时,表中的按钮会丢失事件处理程序 - 尤其是,不要触发我为onclick事件注册的内容。

例如,如果mainTable<table>的{​​{1}}和button的ID,那么当我点击按钮时,没有任何反应这个顺序:

<button>

调用$("#button").click(function() { alert("hi there"); }); $("#mainTable").bootstrapTable(); 有效,但我无法做到这一点,因为我从其他一些我无法控制的代码中获取配置的表格。

为什么要删除这些事件处理程序?我可以阻止这种行为吗?

此处有一个JFiddle来试用它。

2 个答案:

答案 0 :(得分:0)

我直接在库中实现了以下功能,并且工作得非常好

BootstrapTable.prototype.removeRow = function (params) {
if (!params.hasOwnProperty('index')) {
    return;
}

var len = this.options.data.length;

if ((params.index > len) || (params.index < 0)){
    return;
}

this.options.data.splice(params.index, 1);

if (len === this.options.data.length) {
    return;
}

this.initSearch();
this.initPagination();
this.initBody(true);
};

如何使用,如“updateRow”

$("#your-table").bootstrapTable('removeRow',{index:1});

我希望为他们服务(对不起我的英语)

答案 1 :(得分:0)

看起来像Bootstrap Table的代码,当它必须转换现有表时,将每个单元格的内容作为文本(包括潜在的内部HTML标记)获取,并重新创建它们。副作用是在此过程中所有事件处理程序都会丢失。

唯一的解决方法是在转换表后附加事件处理程序。