gpt4 book ai didi

javascript - jQuery $(document).ready () 触发两次

转载 作者:IT王子 更新时间:2023-10-29 02:51:34 26 4
gpt4 key购买 nike

我一直在网上搜索,试图找出这里发生了什么,但我一直无法得到具体的答案。

我的站点上有一个 $(document).ready,无论其中的代码如何,它都可以运行多次。

我已经阅读了 jQuery 的错误报告,内容是如果您的语句中出现异常,.ready 事件将如何触发两次。然而,即使我有以下代码,它仍然会运行两次:

$(document).ready(function() {
try{
console.log('ready');
}
catch(e){
console.log(e);
}
});

在控制台中,我所看到的只是“准备就绪”记录了两次。另一个有异常的 .ready 是否有可能导致问题?我的理解是所有 .ready 标签都是相互独立的,但我似乎无法找到它发挥作用的地方?

这是站点的头部 block :

<head>
<title>${path.title}</title>
<meta name="Description" content="${path.description}" />
<link href="${cssHost}${path.pathCss}" rel="stylesheet" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="media/js/fancybox/jquery.fancybox.pack.js" type="text/javascript" ><!-- --></script>
<script src="/media/es/jobsite/js/landing.js" type="text/javascript" ><!-- --></script>
<script src="/media/es/jobsite/js/functions.js" type="text/javascript"><!-- --> </script>
<script src="/media/es/jobsite/js/jobParsing.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="/media/es/jobsite/js/queryNormilization.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="${jsHost}/js/jquery/jquery.metadata.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="${jsHost}/js/jquery/jquery.form.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js" type="text/javascript" charset="utf-8"><!----></script>
<script src="${jsHost}/js/jquery.i18n.properties-min.js" type="text/javascript" charset="utf-8"><!----></script>

<script type="text/javascript" charset="utf-8">

function updateBannerLink() {
var s4 = location.hash.substring(1);
$("#banner").attr('href','http://INTELATRACKING.ORG/?a=12240&amp;c=29258&amp;s4='+s4+'&amp;s5=^');
}

</script>
</head>

不要注意 JSP 变量,但如您所见,我只调用了一次 functions.js 文件(这是 .ready 函数存在的地方)

最佳答案

就绪事件不能触发两次。很可能发生的情况是您的代码正在移动或操纵代码所在的元素,这会导致浏览器重新执行脚本 block 。

这可以通过在 <head> 中包含脚本标签来避免。或收盘前</body>标记并且使用$('body').wrapInner(); .使用 $('body').html($('body').html().replace(...));效果相同。

关于javascript - jQuery $(document).ready () 触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10727002/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com