0

我有几个 div 使用端点连接彼此连接。当我进行放大或缩小时,我需要重新绘制所有 UI 组件。UI 组件是使用 jsPlumb 库(基于 jquery/javascript)绘制的。jsplumb 中有一种方法可以强制重绘,但它并没有按照我想要的方式工作。这就是我想要做的。

    $("div#explanation .plus").click(function(){
        jsPlumb.repaintEverything();
            var strongFont = parseFloat($("div.window strong").css('font-size'));
            var newStrongFont = strongFont + 2;
            $("div.window ").animate({
                    'height':'+=20px', 'width':'+=20px'
                },"medium");

            $("div.window strong").animate({
                    fontSize:newStrongFont
                },"medium");

    //This is not working       
            jsPlumb.repaintEverything();
            jsPlumb.repaintEverything();
            //I am calling here another function to repaint the div windows one by one
            repaintWindows();

     });
        var repaintWindows = function(){
            var jjl;
            for(jjl=1;jjl<=xmlLength;jjl++)
            {
                var windo = "window"+jjl;
                //alert("Window is ::"+windo);

                jsPlumb.repaint(windo);
                alert("Window is ::"+windo);
                //_addEndpoints(wind, ["LeftMiddle", "BottomCenter"], ["TopCenter", "RightMiddle"]);
            }
            alert("the value of jjl is ::"+jjl+" \nThe value of xmlLength is::"+xmlLength);
        };

这里的问题是如果我删除

        //alert("Window is ::"+windo);

从 for 循环的 repaintWindows 方法中,窗口在下一个调用循环期间被重新绘制。我希望重绘同时工作。如果我保持警报,那么它会同时重新绘制窗口。同样,最后我不希望那里有任何警报。有人可以告诉我我哪里出错了。任何帮助表示赞赏。谢谢!

4

1 回答 1

0

不确定,但试试这个

 $(window).resize(function() {
  jsPlumb.repaintEverything();
 });
于 2012-08-21T21:24:07.643 回答