jQuery $ (document) .ready () uruchamia się dwukrotnie
Więc przesiewałem w sieci, próbując dowiedzieć się, co się tutaj dzieje i nie byłem w stanie uzyskać konkretnej odpowiedzi.
Mam jeden $ (dokument). Na mojej stronie, który łączy się, aby uruchamiać się wiele razy, niezależnie od tego, który kod jest w środku.
Przeczytałem raporty o błędach dla jQuery o tym, jak zdarzenie .ready będzie strzelać dwa razy, jeśli masz wyjątek, który występuje w twojej instrukcji. Jednak nawet jeśli mam następujący kod, nadal działa dwa razy:
$(document).ready(function() {
try{
console.log('ready');
}
catch(e){
console.log(e);
}
});
W konsoli wszystko, co widzę, jest „gotowe” dwa razy zarejestrowane. Czy to możliwe, że inny .ready z wyjątkiem w nim spowoduje problem? Zrozumiałem, że wszystkie znaczniki .ready są od siebie niezależne, ale nie mogę znaleźć miejsca, w którym to się dzieje?
Oto główny blok witryny:
<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>
Nie zwracaj uwagi na zmienne JSP, ale jak widzisz, wywołuję tylko plik functions.js tylko raz (gdzie znajduje się funkcja .ready)