在使用bootstrap-table过程中,我们可能会遇到列属性events事件不能生效的问题,并会发现这个问题有时存在有时却又不存在,这是什么原因呢?其实造成events事件失效的原因非常简单,我们只需查看bootstrap-table.js源码,并找到events处理代码段:
$.each(this.header.events, function (i, events) {
if (!events) {
return;
}
// fix bug, if events is defined with namespace
if (typeof events === 'string') {
events = calculateObjectValue(null, events);
}
//注意,造成events事件失效的原因就在于这两句代码,可以看出,bootsrap-table定位events事件所在列是通过查找列属性field 在列属性数组fields中的位置来确定的,也就是说,当列属性中存在相同的field值时,得到的索引值fieldIndex 永远是第一个field值出现的地方,因此就导致除第一个field值外其他相同field值定位错误,进而导致events事件失效。
也就说列表中的 field字段有重复的导致事件失效了,修改列名即可。
原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/243758.html