0

我有一个三级 jstree。在进行所有选择后,我正在调用 displayCount() 方法以根据选择显示正确的搜索结果计数。现在,当我取消选中一个选项时,它会彻底检查所有节点以保持正确的选定结构,然后它应该调用 displayCount() 方法。但问题是它在取消选中节点之前已经调用了 displayCount() 方法。所以我得到了错误的计数。方法调用顺序如下:-

      UnchekSelectedNodes(){
          // nodes are getting unchecked depends on parent-child relation.
          // purely DOM structure update operation. 
       }

      displayCount(){
         // ajax call to show proper count based on selected nodes/checkboxes
      }

      checkForEmptyDiv(){
         // if it becomes no selected hide the div.
      }

问题是..总是在完成 UnchekSelectedNodes() 操作之前调用 displayCOunt()。我根据标志尝试了方法 chainng。它不起作用。

有什么解决办法??

4

1 回答 1

0

你可以简单地在 setTimeout 中做到这一点......

当我懒惰并且事情发生的顺序错误时,我只需添加一个超时为 1 的 setTimeout,然后调用所有其他调用,然后我的超时。

UnchekSelectedNodes(){
          // nodes are getting unchecked depends on parent-child relation.
          // purely DOM structure update operation. 
       }

      displayCount(){
         setTimeout(function() {
            //just do what ever you want.
         }, 1);
      }

      checkForEmptyDiv(){
         // if it becomes no selected hide the div.
      }
于 2013-04-20T15:21:14.877 回答