2017-05-03 120 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

相關問題