funções em elementos de correr com uma certa classe assim que o DOM é carregado, não usar um manipulador de eventos

StackOverflow https://stackoverflow.com/questions/2035612

Pergunta

Eu tenho uma função simples que eu quero correr em todos os elementos com uma certa classe. Eu quero essa função a ser executada assim que o DOM é carregado; não sobre um manipulador de eventos.

Abaixo está o código que será executado em um manipulador de eventos como hover. Como posso fazê-lo funcionar, assim que o DOM é carregado?

$(document).ready(function(){
    var displayname = $(".displayname");

    function alignSpans(){
        var spanheight = this.offsetHeight;
        var cssbottom = spanheight + "px";
        this.style.bottom = cssbottom; 
    }

    displayname.hover(alignSpans);

});

displayname.alignSpans(); não trabalho

Foi útil?

Solução

Assumindo displayname é um objeto jQuery, você pode usar .each() para chamar uma função de retorno de chamada usando this como os elementos contidos DOM (o que é muito convenientemente a mesma convenção como um processador de eventos)

displayname.each(alignSpans);

Outras dicas

função é isso que o .each () é para. Eu fiz o seu código um pouco mais eficiente também:

$(document).ready(function(){
    $(".displayname").each(function() {
        $(this).css("bottom", $(this).height()); 
    });
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top