2016-04-21 55 views
2

我使用这个JQuery来获得一个div,当窗口宽度小于1200px,并且无法找出我正在犯的错误时,它的宽度与另一个宽度相同。如何让div在jQuery中的宽度相同?

var width = $('.creative').outerWidth(); 

if ($(window).width() < 1200){ 

    $('#right-child').css('width', width); 
}else{ 
    console.log('more than 1200'); 
}; 
+1

如果你想修改div的_height_,那么设置'width'可能是错误的方法。 – Hamms

+1

'$(window).width()'只会给你一个数字。您必须将单位附加到它的末尾,就像@slick的示例 –

+0

中一样,您还可以尝试使用[CSS3 Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/) Media_Queries/Using_media_queries) –

回答

1

想我知道什么问题,你的代码是正确的!但是......如果你用全部浏览器的宽度测试这些代码,没有什么会改变。您需要添加.resize事件(https://api.jquery.com/resize/),就是这样!

$(window).resize(function(){ 

     console.log('resize!'); 
     var width = $('.creative').outerWidth(); 
     if ($(window).width() < 1200){ 
      $('#right-child').css('width', width); 
     }else{ 
      console.log('more than 1200'); 
     }; 

    }); 

如果问题仍然存在,只是让我知道。

+0

这似乎工作 –

6

尝试连接值与单位名称。

$('#right-child').css('width', width + 'px');

+0

仍然不起作用。 –

+0

@EliJayson,我不是魔术师。我无法猜测。控制台中有任何错误?试着用'console.log()'每一行来查看它的中断点......调试你自己的代码。 – slick

+0

刚回来看看这个。原来你是魔术师,而且确实有效。事实上,我最初的代码实际上也起作用。没有错误,我登录到控制台的所有内容都通过了,所以我花了一段时间才弄清楚了。我有css flexbox应用于div我想保持相同的宽度。由于flexbox仅在某些浏览器上受支持,因此我将jQuerys添加为后备。由于某种原因,flexbox在1200到400px之间变成了awol。它根本不起作用,但仍以某种方式覆盖了jQuery。仍在研究解决方案。谢谢 –

相关问题