如何在Jquery中重新绘制所有UI组件

时间:2012-08-20 18:21:21

标签: javascript jquery jsplumb

我有几个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);

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

1 个答案:

答案 0 :(得分:0)

不确定,但试试这个

 $(window).resize(function() {
  jsPlumb.repaintEverything();
 });