すぐにDOMがロードされるよう、特定のクラスを持つ要素に関数を実行し、イベントハンドラを使用していません

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

質問

私は、特定のクラスを持つすべての要素に対して実行する単純な関数を持っています。私は、この関数は、すぐにDOMがロードされているとして実行することにしたいです。ないイベントハンドラに応じます。

以下のようなホバーイベントハンドラ上で実行されるコードです。どのように私はそれが、すぐDOMがロードされるように実行するのですか?

$(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();は動作しません。

役に立ちましたか?

解決

jQueryオブジェクトがdisplaynameをされると仮定すると、あなたは .each() を使用してコールバック関数を呼び出すために使用することができます(非常に便利なイベントハンドラと同じ規則である)を含有していたDOM要素としてthis

displayname.each(alignSpans);

他のヒント

これは.each()関数は何のためにあるのかです。私はあなたのコードを作った、もう少し効率的すぎます:

$(document).ready(function(){
    $(".displayname").each(function() {
        $(this).css("bottom", $(this).height()); 
    });
});
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top