2017-05-03 115 views
2

我的问题是这样的:如何解决JavaScript中的Chrome的调试模式错误?

我在我的网页中的王牌编辑,我需要改变他的大小,这里是代码:

   var x = event.pageX; 
       pageParams = document.body.getBoundingClientRect(); 
       ace = document.getElementById("fileInfo"); 

       if (x > pageParams.width * 0.3) { 
        x = parseInt(pageParams.width * 0.3); 
       } 

       if(x < pageParams.width * 0.2) { 
        x = pageParams.width * 0.2; 
       } 

       $element.css({ 
        left: x + 'px' 
       }); 

       $($attrs.resizerLeft).css({ 
        width: x + 'px' 
       }); 


       var w = topContent.clientWidth; 
       var oldX = $($attrs.resizerRight).css('left'); 
       if(oldX.indexOf('px') > -1) { 
        oldX = parseFloat(oldX.substring(0, oldX.length - 2)); 
       } else { 
        oldX = parseFloat(oldX); 
       } 

       $($attrs.resizerRight).css({ 
        left: (x + parseInt($attrs.resizerWidth)) + 'px' 
      //  width: w + (oldX - x) + 'px' 
       }); 

       $('#fileInfo').css({ 
        width: ace.clientWidth - (oldX - x) + 'px' 
       }) 

       editor.resize(); 

4线末是重要的对我 他们说,找到fileInfo id(我的ace编辑器) 然后将其宽度设置为(ace编辑器上一个宽度+光标的旧位置 - 光标的新位置+'px'(为我的像素) 最后一行实际上是允许调整编辑器的行数

我相信,我在我的逻辑没有错误,但是这才是我的问题:

一旦我运行谷歌Chrome和Mozilla Firefox浏览器,我的代码打破了这种代码,它总是降低我的编辑器的宽度,但,当我进入浏览器的调试模式(通过F12)并在同一段代码上划一个断点时,代码就工作了!!!!!!

我不能相信它,我没有解释它... 使用调试模式和断点(不是没有)它的工作原理,但没有断点和/或调试模式,它不工作.. ..

我希望我自己清楚那你就可以帮我...

THX

加:

我发现了,有一次我在调试我不是模式,oldX总是大于X变量,但一旦我与破裂进入调试模式,那么它像它应该是,有时大,有时小...

回答

0

这是一个有点这里猜测工作,但是......

开发工具调试模式我有几个效果,其中之一是添加一些异步性质的环境。 (基本上,当你在没有调试模式的情况下调整大小时,你的css可能不会被应用)。我会尝试为调整大小调用添加一些超时。试试这个,看看它是否解决了这个问题:

setTimeout(function(){ 
    editor.resize(); 
}, 20); 
+0

我只是想,它不是这样的....再次,如果有断点,那么它的工作原理,否则ID犯规:(THX反正 – babo3321

相关问题