加载div时无法运行jquery脚本,在DOM加载之前运行jquery代码

时间:2016-03-29 02:31:07

标签: javascript jquery html css load

我找了很多解决方案,但我找不到一个......你能帮助我吗? 我想在加载div时运行代码。我不想等到加载页面结束。

所以我在$(sel).on('load', function(){ ... });使用$(window).on('load', function(){ ... });时正在使用$('#collapseTrack').on('load', function(){ ... });但是当我指定div $('#nav-maps').on('click', function(event) { $('#nav-maps').addClass('active').removeClass('inactive'); $('#nav-trace').removeClass('active').addClass('inactive'); }); $('#nav-trace').on('click', function(event) { $('#nav-trace').addClass('active').removeClass('inactive'); $('#nav-maps').removeClass('active').addClass('inactive'); }); $('.collapse-nav').on('click', function(event) { $('#collapseTrack').toggleClass('DivClose').toggleClass('DivOpen'); if ($('#collapseTrack').hasClass('DivClose')) { $('.collapse-button').html('<i class="fa fa-angle-down"></i>'); $.cookie("toggle", 0, { expires : 10 }); } else { $('.collapse-button').html('<i class="fa fa-angle-up"></i>'); $.cookie("toggle", 1, { expires : 10 }); } }); if ($('#collapseTrack').hasClass('DivClose')) { $('.collapse-button').html('<i class="fa fa-angle-down"></i>'); } else { $('.collapse-button').html('<i class="fa fa-angle-up"></i>'); } <的ID时/ p>

以下是我的所有代码:`

$(&#39;#collapseTrack&#39;)。on(&#39; load&#39;,function(){

{{1}}

});

`

谢谢!!!

2 个答案:

答案 0 :(得分:1)

在div之后放置脚本标签

...html here...
    <div id="your div">foo</div>
    <script type="text/javascript">
       //code here
    </script>
...more html here...

答案 1 :(得分:1)

单个div没有特定的.load()事件。因此,您可以在代码中实际找到#collapseTrack div的唯一一次是在您通过页面加载器解析div并将其添加到DOM之后运行某些代码,或者将其添加到页面中一些Javascript代码。

在加载div之后立即运行代码的最简单方法是在HTML中<script>之后放置一个<div>标记。

<div id="collapseTrack">Your HTML</div>
<script type="text/javascript">
   $('#collapseTrack')....
</script>

由于页面是按顺序解析的,因此可确保页面中此<script>标记之前显示的所有HTML都已存在于DOM中,并且在此<script>标记运行之前可以访问。

如果您愿意等到页面本身被解析到最后,您可以这样做:

$(document).ready(function() {
    // waits for just the DOM to be finished parsing and inserted
    $('#collapseTrack')....
});

这至少会在加载过程中早于等待所有页面资源完成加载的window.load运行(包括图像,样式表等):

$(window).on('load', function() {
    // waits for all page resources to finish loading
    $('#collapseTrack')....
});