2016-05-03 39 views
1

我想写一个函数,我可以重复使用不同的元素。在函数参数中使用变量,有或没有Jquery

这个想法是获得窗口高度并将其应用于不同的元素。

我想我可以做这样的事情,但它不工作:

function autoHeight(element) { 
    var height = window.innerHeight; 
    $(element).css('height', height); 
} 

autoHeight('.dashboard-sidebar'); 
autoHeight('.some-element'); 

它不工作。我知道我很近,但我错过了一些东西!

提前致谢!

+1

我认为当你从window.innerHeight获得高度时,你只是错过了'px'。其余的似乎没问题。 – zoubida13

+0

你也可以通过'$(element).height(高度)'来跳过“px”要求。 – scrappedcola

回答

0

使用JavaScript

function autoHeight(element) { 
 
    var height = window.innerHeight; 
 
    var ele = document.querySelector(element); 
 
    if (ele) { 
 
    ele.style.height = height + 'px'; 
 
    } 
 
} 
 

 
autoHeight('.dashboard-sidebar'); 
 
autoHeight('.some-element');
div { 
 
    width: 120px; 
 
    height: 120px; 
 
    background: #DDDDDD; 
 
    margin: 5px; 
 
    display: inline-block; 
 
}
<div class="dashboard-sidebar"></div> 
 
<div class="some-element"></div>

1

似乎在这里工作的罚款:https://jsfiddle.net/gerLe2x9/

你有你的包裹在JS $(window).load

$(window).load(function() { 
    function autoHeight(element) { 
     var height = window.innerHeight; 
     $(element).css('height', height); 
    } 

    autoHeight('.dashboard-sidebar'); 
    autoHeight('.some-element'); 
} 
+0

哦....忘记提及它是在一个Metor应用程序! 所以我想我应该将它添加到Template.templateName.onRendered ....! – Neonjack

+1

@Neonjack我还没有亲自获得流星的经验,但看看这个:http://docs.meteor.com/#/basic/Template-onRendered,似乎是相同的地方,如果你明白我的意思。 –

+0

完全!它现在的作品,谢谢:)虽然它没有明确回答我的问题,但它帮助我解决了它! – Neonjack

相关问题