تشغيل وظائف على عناصر مع فئة معينة بمجرد تحميل 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(); لا يعمل

هل كانت مفيدة؟

المحلول

افترض displayname هو كائن jQuery، يمكنك استخدام .each() لاستدعاء وظيفة رد الاتصال باستخدام this كعناصر دوم الواردة (التي هي نفس الاتفاقية مريحة للغاية مثل معالج الأحداث)

displayname.each(alignSpans);

نصائح أخرى

هذا ما هي وظيفة. كل () ل. لقد صنعت الكود الخاص بك أكثر كفاءة بعض الشيء أيضا:

$(document).ready(function(){
    $(".displayname").each(function() {
        $(this).css("bottom", $(this).height()); 
    });
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top