如何在加载DOM之前设置jquery回调?

时间:2015-04-27 09:14:20

标签: jquery dom

我可以在加载DOM之前运行jquery代码吗?

我想在window.onload事件上运行jquery。

我试过了:

window.onload=function($) {
  var url = $(location).attr("href");

        if (url.indexOf("1234") > 0)
            var nodeToHide = $('#1234');

            if(nodeToHide){
                var $parentToHide = $(nodeToHide).parent().closest("div[class='row']");
                if($parentToHide)
                    $parentToHide.hide();
            }
            };

但它给出了一个错误。

修改 我搬到了普通的js。代码现在是:

<script type="text/javascript">
        function hideDiv1234() {
        var url = location.href;

        if (url.indexOf("1234") > 0){
            var headerToHide = document.getElementById('1234');

            var divParent = headerToHide.parentNode;
            if(divParent){
                divParent.parentNode.style.display="none";
            } else 
                divParent.style.display="none";
        }
    };      
    </script>

不幸的是,此功能在浏览器上显示页面后运行。

1 个答案:

答案 0 :(得分:1)

如果您想在ready之前运行代码,可以将其从ready回调中删除,并将其打开到脚本中。它将在解析HTML时到达元素时执行。

如果要在加载所有资源后运行代码,请在load上使用window事件:

jQuery(window).on('load', function ($) {
    // Your code here
}(jQuery));

有关更多说明:https://stackoverflow.com/a/4584475/2025923