jquery-datatables:使用API​​重新排序时忽略'column-reorder'事件(colReorder.order())

时间:2017-07-14 11:23:28

标签: jquery datatables datatables-1.10 angular-datatables

我正在使用ColReorder插件。我想仅在用户拖放列(column-reorder事件时)时执行某些操作,而不是在我通过API更改列排序时(使用colReorder.order())。

我已经检查了事件的回调参数,它们在两种情况下看起来都相同。我可以通过API来抑制事件吗?或者通过其他方式来区分这两种情况?

versions:
"datatables": "1.10.13",
"datatables.net-colreorder": "1.3.2",

1 个答案:

答案 0 :(得分:0)

您可以在调用colReorder.order()之前取消注册该事件,然后重新注册它。

table.off('column-reorder')
table.colReorder.order(order)
table.on('column-reorder', function(){
  // Your code
})

或者您可以使用布尔值来测试您所处的场景:

var isExplicitCall = false
table.on('column-reorder', function(){
    if (!isExplicitCall){
        // Your code
    }
})
// Then call your reorder
isExplicitCall = true
table.colReorder.order(order)
isExplicitCall = false