我们正在使用 Backgrid 并发现要开始在 Backgrid 中编辑“布尔”(复选框)单元格,您必须单击两次:第一次单击被忽略并且不会切换复选框的状态。理想情况下,我们会找到导致这种行为的根源(例如,调用 preventDefault )并在那里解决它,但我起初尝试了一种不同的方法,使用 BooleanCell 的 enterEditMode 方法的以下扩展,这似乎是一个合乎逻辑的地方,因为它在进入编辑模式时,复选框单击被忽略。
问题是我的尝试还切换了先前编辑的复选框的状态。这是代码。
var BooleanCell = Backgrid.BooleanCell.extend({
/*
* see https://github.com/wyuenho/backgrid/issues/557
*/
enterEditMode: function () {
Backgrid.BooleanCell.prototype.enterEditMode.apply(this, arguments);
var checkbox = this.$('input');
checkbox.prop('checked', !checkbox.prop('checked'));
}
});