![]() |
寂寞的哑铃 · jquery如何监听浏览器关闭_mob649 ...· 1 月前 · |
![]() |
乐观的香菜 · jQuery 绑定事件到动态创建的元素上 ...· 1 月前 · |
![]() |
傲视众生的移动电源 · 区退役军人事务局:中医讲座暖人心冬季养生保健 ...· 2 月前 · |
![]() |
考研的手电筒 · 笛子好学吗?竹笛包厂家这样给你解答_手机搜狐网· 7 月前 · |
![]() |
玉树临风的乌冬面 · 江西省新余市税务局稽查局依法查处一起利用软件 ...· 12 月前 · |
![]() |
鬼畜的雪糕 · 官方:国米租借+买断1000万签下阿瑙托维奇 ...· 1 年前 · |
![]() |
没有腹肌的鸵鸟 · 还有哪些类似《刀剑乱舞》的游戏值得推荐? - 知乎· 1 年前 · |
我一直在网上筛选,试图找出这里发生了什么,但我还没有得到一个具体的答案。
我在我的网站上有一个
$(document).ready
,不管里面的代码是什么,它都会多次运行。
我已经阅读了有关jQuery的错误报告,其中介绍了如果语句中发生异常,
.ready
事件将如何触发两次。然而,即使我有以下代码,它仍然会运行两次:
$(document).ready(function() {
console.log('ready');
catch(e){
console.log(e);
});
在控制台中,我看到的是"ready“记录了两次。有没有可能另一个包含异常的.ready会导致问题?我的理解是所有的.ready标签都是相互独立的,但我似乎找不到这是在哪里发挥作用的?
以下是该站点的标题块:
<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&c=29258&s4='+s4+'&s5=^');
</script>
</head>
不要管JSP变量,但正如您所看到的,我只调用了functions.js文件一次(这是.ready函数所在的位置)
尝试将此代码放入您的functions.js中,以防止其执行两次:
var checkit = window.check_var;
if(checkit === undefined){ //file never entered. the global var was not set.
window.check_var = 1;
else {
//your functions.js content
}
然而,我建议您更深入地研究一下,看看您在哪里调用第二次调用。
在我使用KendoUI时发生了这种情况...调用弹出窗口将导致
document.ready
事件多次触发。简单的解决方案是设置一个全局标志,使其只运行一次:
var pageInitialized = false;
$(function()
if(pageInitialized) return;
pageInitialized = true;
// Put your init logic here.
});
它有点像黑客,但它是有效的。
这也发生在我身上,但我意识到由于糟糕的合并,脚本已经被包含了两次。
您可以考虑使用
window.onload
而不是
$(document).ready
确保没有包含两次JS文件。那是我的案子
当我尝试刷新部分时,我也遇到了类似的问题。我调用了一个返回ActionResult而不是一个返回PartialViewResult。ActionResult导致我的ready()运行两次。
当您在html中添加两次相同的控制器时,可能会遇到此问题。
对于一个实例:
js
app.controller('AppCtrl', function ($scope) {
$(document).ready(function () {
alert("Hello");
//this will call twice
});
html
//controller mentioned for the first time
<md-content ng-controller="AppCtrl">
//some thing