2016-05-03 1 views
1

Ich möchte eine Funktion schreiben, die ich mit verschiedenen Elementen wiederverwenden könnte.Verwenden von Variablen in Funktionsparametern, mit oder ohne Jquery

Die Idee ist, die Fensterhöhe zu erhalten und sie auf verschiedene Elemente anzuwenden.

Ich dachte, ich so etwas tun könnte, aber es funktioniert nicht:

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

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

Es funktioniert nicht. Ich weiß, ich bin nah dran, aber mir fehlt etwas!

Vielen Dank im Voraus!

+1

Ich glaube, du verpasst nur die 'px', wenn du die Höhe von window.innerHeight bekommst. Der Rest scheint in Ordnung zu sein. – zoubida13

+0

können Sie alternativ die "px" Anforderung überspringen, indem Sie einfach $ (Element) .height (Höhe) ' – scrappedcola

Antwort

0

Mit 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

scheint hier zu funktionieren: https://jsfiddle.net/gerLe2x9/

Haben Sie Ihre JS in $(window).load gewickelt:

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

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

Oh .... Vergessen Sie zu erwähnen, es ist in einer Metor App !! Also ich denke, ich sollte es zu einem Template.templateName.onRendered hinzufügen ....! – Neonjack

+1

@Neonjack Ich habe nicht persönlich Erfahrung mit Meteor, aber schau dir das an: http://docs.meteor.com/#/basic/Template-onRendered das scheint der äquivalente Ort zu sein, wenn du weißt was ich meine. –

+0

Totally! Es funktioniert jetzt, danke :) Obwohl es meine Frage nicht explizit beantwortet hat, hat es mir geholfen, es zu lösen! – Neonjack