Tôi không nghĩ rằng có thể ngăn chặn hành vi đó. Tôi đã không tìm thấy bất kỳ đầu mối nào trong tài liệu cũng như không nhanh chóng kiểm tra mã nguồn.
Tuy nhiên, bạn có thể bỏ chọn các ô đã chọn ngay sau khi chúng được chọn. Việc ràng buộc một hàm để xử lý sự kiện nhấn ô sẽ thực hiện thủ thuật. Bạn có thể làm điều đó bằng cách đăng ký gọi lại khi instantiating handsontable của bạn:
$('#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');
}
},
...
});
Hoặc bằng một cái móc:
Handsontable.hooks.add('afterOnCellMouseDown', function(event, coords){
if (coords.row < 0){
$('#my_handsontable').handsontable('deselectCell');
}
});
Ngoài ra, bạn có thể chỉnh sửa mã nguồn handsontable và bình luận các đoạn mã trong walkontableConfig mà không chọn toàn bộ cột khi một tế bào tiêu đề được nhấp:
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);
// }
...
},
...
};
Nguồn
2015-08-25 22:35:29
'stopPropogation' có thể là lựa chọn tốt hơn trong một số trường hợp (xem http://stackoverflow.com/questions/5299740/jquery-stoppropagation-vs-stopimmediatepropagation) –
Điều này không hiệu quả đối với tôi trong 0,18. Sự kiện kích hoạt không sao, nhưng gọi stopImmediatePropagation() không ngăn các lựa chọn ô – Eric
Vấn đề tương tự như @Eric – Petah