我在现有表的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());
你能帮我吗?
最佳答案
我不是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
关于javascript - 不断获取“.getSelected不是函数”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4837909/