Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SlickGrid取消选中行复选框事件_Javascript_Jquery_Html_Slickgrid - Fatal编程技术网

Javascript SlickGrid取消选中行复选框事件

Javascript SlickGrid取消选中行复选框事件,javascript,jquery,html,slickgrid,Javascript,Jquery,Html,Slickgrid,我是jQuery新手,我需要在我的项目中使用网格。我选择了SlickGrid(非常光滑)。取消选择行时,我需要禁用某些按钮 grid.onSelectedRowsChanged.subscribe(function(){ var selectedRows = grid.getSelectedRows(); if (selectedRows.length === 0) { // (when all rows are deselected)

我是jQuery新手,我需要在我的项目中使用网格。我选择了SlickGrid(非常光滑)。取消选择行时,我需要禁用某些按钮

grid.onSelectedRowsChanged.subscribe(function(){
     var selectedRows = grid.getSelectedRows();
     if (selectedRows.length === 0) {
          // (when all rows are deselected)
          // your logic goes here...
     }
});
我正在使用以下回调:

grid.onSelectedRowsChanged.subscribe(function(){});
问题是回调只在选择时执行,而不是在取消选择行时执行

grid.onSelectedRowsChanged.subscribe(function(){
     var selectedRows = grid.getSelectedRows();
     if (selectedRows.length === 0) {
          // (when all rows are deselected)
          // your logic goes here...
     }
});
如果您想对任何行执行逻辑,请取消选择,我建议将selectedRows存储在全局变量中,该变量将在SelectedRowsChanged事件中更新。此外,在onSelectedRowsChanged中,您可以比较全局selectedRows变量和grid.getSelectedRows()长度,以查看是否发生了任何更改

var lastSelectedRows = [];    
grid.onSelectedRowsChanged.subscribe(function(){
     var selectedRows = grid.getSelectedRows();
     if (selectedRows.length < lastSelectedRows.length ) {
        // proceed in finding the actual row by comparing the two arrays
        // the rest of the logic goes here...
      }
      lastSelectedRows =  selectedRows;
 });
var lastSelectedRows=[];
grid.onSelectedRowsChanged.subscribe(函数(){
var selectedRows=grid.getSelectedRows();
如果(selectedRows.length

!请注意,我是Slickgrid的新手,这可能不是最好的解决方案。我只是觉得值得一试

不应该是这样。包括一个jsfiddle.net复制程序。
var lastSelectedRow = null;

grid.onSelectedRowsChanged.subscribe(function () {
    if (lastSelectedRow && lastSelectedRow != grid.getSelectedRows()[0]) {        
        var item = dataView.getItem(lastSelectedRow);
        // Do something with item;
    }

    lastSelectedRow = grid.getSelectedRows()[0];

    // other logic may go here
});