久々に Handsontable に触れる。
3年程前、2014 年のバージョンの Handsontable のコンテキストメニューは、行削除、列削除を組み込んだ時、
最後の1行、1列は、削除できないように、以下のように disabled キーの関数コーディングをする必要があった。
var hot = new Handsontable(document.getElementById("example"), { data: [["Key", "Value" ],], minSpareRows: 1, colHeaders: false, contextMenu: { items:{ 'row_above': { name: '1行挿入' }, 'col_left': { name: '1列挿入' }, 'remove_row': { name: '行削除' , disabled: function(){ return hot.countRows() < 2; } }, 'remove_col': { name: '列削除' , disabled: function(){ return hot.countCols() < 1; } }, "hsep": "---------", 'undo': { name: '戻る' }, } }, });
この記述のまま、バージョンがこの時に比べてかなり新しい、最近のHandsontable を使用すると
コンテキストメニューを開いた時に、
Uncaught ReferenceError: container is not defined
で、コンテキストメニューがきちんと描画されない。
もう、この disabled: function(){ ... } は書かなくても 最後の1行、1列は、削除できないようになっている。
だから、以下の記述で良い。
$('#example').handsontable({ data: [["Key", "Value" ],], minSpareRows: 1, colHeaders: false, contextMenu: { items:{ 'row_above': { name: '1行挿入' }, 'col_left': { name: '1列挿入' }, 'remove_row': { name: '行削除' }, 'remove_col': { name: '列削除' }, "hsep": "---------", 'undo': { name: '戻る' }, } }, });