2017-01-27 23 views
-2

我试图确定引导程序容器在页面加载和浏览器大小调整时左边距的数量。javascript - 基于函数调用的不同结果

JS:

$(function() { 
    var margin = parseInt($('.container').first().css('margin-left'), 10); 
}); 

$(window).resize(function() { 
    var margin = parseInt($('.container').first().css('margin-left'), 10); 
}); 

HTML:

<div class="container"> 
    <div class="row"> 
     <div class="col-sm-9 main"> 
      <div class="content text-center"> 
       <h1>MAIN CONTENT</h1> 
      </div> 
     </div> 

     <div class="col-sm-3 sidebar"> 
      <div class="content text-center"> 
       <h1>SIDEBAR</h1> 
      </div> 
     </div> 
    </div> 
</div> 

我的问题是,当它运行在页面加载时,边距值约为10px的大于它的窗口大小调整。

例如:我加载页面,页边空白变量的计算结果为233.当我调整大小时,无论指向哪一个我调整大小,它立即计算为225。任何想法这是什么时候执行的JavaScript在两种情况下是相同的?

+0

嗨!任何方式我们可以看到这个生活,或在一个codepen?现在,很难弄清楚可能会发生什么...... – MacPrawn

回答

1

我认为这是因为你的第一个电话等待页面加载,第二个是直接评估。

看看这个例子:http://codepen.io/anon/pen/GrOWoZ?editors=0011

当您缠绕用jQuery这样的函数$(function(){ /* code */ })

JQuery的等待文件准备就绪。 https://api.jquery.com/ready/ $(function() { // Handler for .ready() called. });

当您直接绑定事件时,它不会等待文档准备就绪。

我希望这个帮助!

+0

谢谢你,看起来像调用document.ready时的边距是相同的,并且在你的例子中调整大小。任何想法在我的方面可能会发生什么变化? – noclist

+0

我认为你需要在'$(function(){ // Handler for .ready()called。 });' 中包含事件处理函数。换句话说,等待页面被加载文档.ready在window.onload上 – Julien

相关问题