我已经在现有表的mootools 1.3中创建了一个HtmlTable.Select,尝试了“selectable:true”和“enableSelect”,没有任何作用,如果我尝试访问我的表的“getSelected”方法,我保持得到“.getSelected不是函数”,“selectAll”或“selectNone”等所有其他函数都能完美地运行“。
我的代码(来自班级内部):
this.options.HTMLTable = new HtmlTable(this.options.table, {
selectable : true
});
// this works perfect ...
this.options.HTMLTable.selectAll();
// ... but this causes the error!
console.log(this.options.HTMLTable.getSelected());
你可以帮忙吗?
答案 0 :(得分:0)
我不是mooTools专家,但如果你查看jsfiddle
您会在.__proto__
的原型(this.options.HTMLTable
)中看到方法selectAll
已定义,但getSelected
未定义。
这是调试的开始。添加一些数据到小提琴,使你的问题更加现实。
虽然HTMLTable上有._selectedRows
属性。只需编写自己的.getSelected方法并完成它!
我刚刚阅读了源代码,方法getSelected
不存在。这是它应该做的事情
function getSelected() {
return this._selectedRows;
}
将其归档为错误,同时只使用
// Bug in HtmlTable. Custom implementation. Remove when using mootools 1.4
HtmlTable = new Class({
Extends: HtmlTable,
getSelected: function() {
return this._selectedRows;
}
});
@DimitarChristoff建议您最好使用:
if (!HtmlTable.prototype.getSelected) {
HtmlTable.prototype.getSelected = function() {
return this._selectedRows;
};
}
这样,只有在必要时才更改HtmlTable的原型。你可能需要某种HtmlTable.Select加载检查。
查看新的fiddle