JavaScript/jQuery函数使用窗口加载跳过代码

JavaScript/jQuery函数使用窗口加载跳过代码,javascript,jquery,Javascript,Jquery,我制作了一个函数,可以在窗口加载时对元素应用一些css规则。这是我的密码 function applyHover() { $('.view_preloader .overlay').css('opacity',1); $('.view_preloader .s2').css({ '-webkit-transform' : 'translate3d(59px,0,0) rotate3d(0,1,0,-45deg)',

我制作了一个函数,可以在窗口加载时对元素应用一些css规则。这是我的密码

function applyHover()
{

        $('.view_preloader .overlay').css('opacity',1);

        $('.view_preloader .s2').css({

            '-webkit-transform' : 'translate3d(59px,0,0) rotate3d(0,1,0,-45deg)',
            '-moz-transform': 'translate3d(59px,0,0) rotate3d(0,1,0,-45deg)',
            '-o-transform': 'translate3d(59px,0,0) rotate3d(0,1,0,-45deg)',
            '-ms-transform': 'translate3d(59px,0,0) rotate3d(0,1,0,-45deg)',
            'transform': 'translate3d(59px,0,0) rotate3d(0,1,0,-45deg)'             

        });

        $('.view_preloader .s3, .view_preloader .s5').css({

            '-webkit-transform' : 'translate3d(59px,0,0) rotate3d(0,1,0,90deg)',
            '-moz-transform': 'translate3d(59px,0,0) rotate3d(0,1,0,90deg)',
            '-o-transform': 'translate3d(59px,0,0) rotate3d(0,1,0,90deg)',
            '-ms-transform': 'translate3d(59px,0,0) rotate3d(0,1,0,90deg)',
            'transform': 'translate3d(59px,0,0) rotate3d(0,1,0,90deg)'              

        });     

        $('.view_preloader .s4').css({

            '-webkit-transform' : 'translate3d(59px,0,0) rotate3d(0,1,0,-90deg)',
            '-moz-transform': 'translate3d(59px,0,0) rotate3d(0,1,0,-90deg)',
            '-o-transform': 'translate3d(59px,0,0) rotate3d(0,1,0,-90deg)',
            '-ms-transform': 'translate3d(59px,0,0) rotate3d(0,1,0,-90deg)',
            'transform': 'translate3d(59px,0,0) rotate3d(0,1,0,-90deg)'             

        });     

        alert(); //Only for testing purpose                             
}
现在,根据需求,我需要在窗口完全加载时调用此函数。给你

$(window).load(function(e) {
    applyHover();
});
但当窗口加载时,它所做的只是触发代码末尾编写的警报函数,并跳过所有应该应用css的代码

奇怪的是,当我通过另一个事件(比如单击另一个元素)调用同一个函数时,它完全可以正常工作。比如说

$(document).ready(function(){

   $('.text').click(function(e) {
       applyHover();
   });

});

所以我猜问题与窗口负载有关。有什么想法吗?

问题是,当触发window.onload事件时,DOM尚未创建-您应该将调用移到ready函数中。或者尝试body.onload,如下所述:

请看这里:
这就解决了您的问题

窗口。onload
!=<代码>文档。ondomcontentloaded。试着把它放在后者中:

$(function() {
    applyHover();
});

(这是
$(document.ready(function(){…});
)的简写语法。

不完全是我所看到的,但它仍然帮助我找到了光明。谢谢