|
|
眉毛粗的油条 · jQuery键盘事件详解· 3 月前 · |
|
|
闷骚的山楂 · 工业设计师| 兽医评估· 5 月前 · |
|
|
爱听歌的鞭炮 · 【航空科普】全球三大航空联盟:天合、星空、寰 ...· 1 年前 · |
|
|
近视的春卷 · 杭州城市大脑2.0推进会召开· 1 年前 · |
|
|
刚分手的哑铃 · Python混合整数规划库mip ...· 2 年前 · |
|
|
紧张的火龙果 · IDC机房机柜租赁的尺寸为多少?_极云科技· 2 年前 · |
我一直在网上筛选,试图找出这里发生了什么,但我还没有得到一个具体的答案。
我在我的网站上有一个
$(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
|
|
眉毛粗的油条 · jQuery键盘事件详解 3 月前 |
|
|
闷骚的山楂 · 工业设计师| 兽医评估 5 月前 |
|
|
近视的春卷 · 杭州城市大脑2.0推进会召开 1 年前 |
|
|
紧张的火龙果 · IDC机房机柜租赁的尺寸为多少?_极云科技 2 年前 |