显式调用javascript回调
我有两个函数,一个用于展开树视图(即ExpandAll()),另一个用于从树视图中删除特定类型的元素(即removeablements()) ExpandAll()方法检查所选节点下是否有子节点。如果没有,则通过ajax调用检索子元素。现在我调用这些方法如下:显式调用javascript回调,javascript,jquery,Javascript,Jquery,我有两个函数,一个用于展开树视图(即ExpandAll()),另一个用于从树视图中删除特定类型的元素(即removeablements()) ExpandAll()方法检查所选节点下是否有子节点。如果没有,则通过ajax调用检索子元素。现在我调用这些方法如下: function(){ ExpandAll(); RemoveAbElements(); } 现在我的问题是,ExpandAll()方法中有一个回调,它会为每个展开的子节点调用(这是预期的)。现在,即使在执行Remov
function(){
ExpandAll();
RemoveAbElements();
}
现在我的问题是,ExpandAll()方法中有一个回调,它会为每个展开的子节点调用(这是预期的)。现在,即使在执行RemoveAppElements()方法之后,也会调用回调。我想在RemoveAblements()执行之前执行ExpandAll()方法及其所有回调。我为此做了很多尝试,但都没有成功。请提供帮助。如果我理解正确,您需要向EXpandAll()添加一个侦听器,完成所有操作后,请调用RemoveAblements() 我将介绍jquerys自定义事件触发:
你有很多方法可以接近 一种方法可能是,将移除标记本身传递给ExpandAll 所以你可以把它当作
ExpandAll(RemoveAbElements);
或者,当您不想调用RemoveElements时,如:
ExpandAll();
可以修改ExpandAll以接受回调:
ExpandAll(callbackFunc) {
//... Do Work Here
if(callbackFunc) callbackFunc();
}
或者使用&如果有jquery对象,正如slinky2000所建议的那样。感谢您的回复,但是ExpandAll()回调将被多次调用。我只想调用RemoveAblements()一次。它会这样工作吗?对于不想调用RemoveElements的情况,可以将该参数保持为null。我已经更新了我的示例…听起来你的设计对我来说过于复杂了。在我看来,您的问题至少是您的设计决策之一:延迟加载树视图(除非您的数据集很大,否则不要这样做)、异步延迟加载(如果您希望它是异步的,那么您需要将后处理放入onreadystatechange事件处理程序中),或者请求太多的数据,这需要在收到响应后从响应中筛选出数据(如果不需要,请让服务器筛选出数据)。
ExpandAll(callbackFunc) {
//... Do Work Here
if(callbackFunc) callbackFunc();
}