Non credo sia possibile prevenire questo comportamento. Non ho trovato alcun indizio né nella documentazione né rapidamente ispezionando il codice sorgente.
Tuttavia, è possibile deselezionare le celle selezionate subito dopo essere state selezionate. Legare una funzione per gestire l'evento click cella farebbe il trucco. Si potrebbe fare che o registrando la richiamata quando si crea un'istanza vostro handsontable:
$('#my_handsontable').handsontable({
...
afterOnCellMouseDown: function(event, coords){
// 'coords.row < 0' because we only want to handle clicks on the header row
if (coords.row < 0){
$('#my_handsontable').handsontable('deselectCell');
}
},
...
});
o tramite un gancio:
Handsontable.hooks.add('afterOnCellMouseDown', function(event, coords){
if (coords.row < 0){
$('#my_handsontable').handsontable('deselectCell');
}
});
In alternativa, è possibile modificare il codice sorgente handsontable e commentare il pezzo di codice walkontableConfig che fa selezionare l'intera colonna quando viene cliccato una cella di intestazione:
var walkontableConfig = {
...
onCellMouseDown: function (event, coords, TD, wt) {
...
// if (coords.row < 0) {
// instance.selectCell(0, coords.col, instance.countRows() - 1, coords.col);
// instance.selection.setSelectedHeaders(false, true);
// }
...
},
...
};
fonte
2015-08-25 22:35:29
'stopPropogation' può essere una scelta migliore in alcuni casi (vedi http://stackoverflow.com/questions/5299740/jquery-stoppropagation-vs-stopimmediatepropagation) –
Questo non funziona per me in 0.18. L'evento si attiva, ma chiamare stopImmediatePropagation() non impedisce le selezioni di celle – Eric
Lo stesso problema di @Eric – Petah