加载 div 时 运行 jquery 脚本不可能, DOM 加载前 运行 jquery 代码
impossible to run jquery script when div is loaded, run jquery code before DOM load
我找了很多解决方案,但找不到一个...你能帮我吗?
我想在加载 div 时 运行 一个代码。我不想等到加载页面结束。
所以我正在使用 $(sel).on('load', function(){ ... });
它在我输入 $(window).on('load', function(){ ... });
时有效,但在我指定 div $('#collapseTrack').on('load', function(){ ... });
[=20 的 ID 时无效=]
这是我所有的代码: `
$('#collapseTrack').on('load', function(){
$('#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>');
}
});
`
谢谢!!!
在 div
之后放置脚本标签
...html here...
<div id="your div">foo</div>
<script type="text/javascript">
//code here
</script>
...more html here...
单个 div 没有特定的 .load()
事件。所以,你唯一能在你的代码中找到 #collapseTrack
div 的情况是你 运行 之后的一些代码 div 已经被解析并添加到 DOM 由页面加载器或通过某些 Javascript 代码将其添加到页面时。
在加载 div 之后 运行 代码的最简单方法是在 [=31= 中的 <div>
之后放置一个 <script>
标签].
<div id="collapseTrack">Your HTML</div>
<script type="text/javascript">
$('#collapseTrack')....
</script>
由于页面是按顺序解析的,这确保了页面中此 <script>
标记之前出现的所有 HTML 已经在 DOM 中并且在此 [=15] 之前可访问=] 标签 运行s.
如果您愿意等到页面本身被解析到最后,您可以这样做:
$(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')....
});
我找了很多解决方案,但找不到一个...你能帮我吗? 我想在加载 div 时 运行 一个代码。我不想等到加载页面结束。
所以我正在使用 $(sel).on('load', function(){ ... });
它在我输入 $(window).on('load', function(){ ... });
时有效,但在我指定 div $('#collapseTrack').on('load', function(){ ... });
[=20 的 ID 时无效=]
这是我所有的代码: `
$('#collapseTrack').on('load', function(){
$('#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>');
}
});
`
谢谢!!!
在 div
之后放置脚本标签...html here...
<div id="your div">foo</div>
<script type="text/javascript">
//code here
</script>
...more html here...
单个 div 没有特定的 .load()
事件。所以,你唯一能在你的代码中找到 #collapseTrack
div 的情况是你 运行 之后的一些代码 div 已经被解析并添加到 DOM 由页面加载器或通过某些 Javascript 代码将其添加到页面时。
在加载 div 之后 运行 代码的最简单方法是在 [=31= 中的 <div>
之后放置一个 <script>
标签].
<div id="collapseTrack">Your HTML</div>
<script type="text/javascript">
$('#collapseTrack')....
</script>
由于页面是按顺序解析的,这确保了页面中此 <script>
标记之前出现的所有 HTML 已经在 DOM 中并且在此 [=15] 之前可访问=] 标签 运行s.
如果您愿意等到页面本身被解析到最后,您可以这样做:
$(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')....
});