jqgrid イベントはグリッド プロパティとして定義されているため、setGridParam
メソッドを使用してイベント パラメータを再割り当てできます。イベント プロパティを設定してイベントをnull
無効にしました。
grid_afterInsertRow
名前で簡単に参照できるように、匿名ではありません。setGridParam
への呼び出しが、以前に作成された匿名関数参照を解放するかどうかわからないため、非匿名関数も使用しています。
function grid_afterInsertRow(rowID, rowData, rowElem) {
// do stuff
}
function toggle_afterInsertRow(isEnabled) {
if(isEnabled) {
$('#grid').jqGrid('setGridParam', {afterInsertRow: grid_afterInsertRow});
} else {
$('#grid').jqGrid('setGridParam', {afterInsertRow: null});
}
}
一部のリファクタリングにより、上記のコードの汎用バージョンが提供されます
// usage: toggleGridEvent($('#grid'), true, afterInsertRow, grid_afterInsertRow);
function toggleGridEvent($grid, isEnabled, eventName, callback) {
var params = {};
if(isEnabled) {
params[eventName] = callback;
} else {
params[eventName] = null;
}
$grid.jqGrid('setGridParam', {afterInsertRow: grid_afterInsertRow});
}