jQuery $ (document) .ready () 두 번 실행
그래서 나는 여기서 무슨 일이 일어나고 있는지 알아 내려고 웹을 뒤지고 있는지 알아 듣고 웹을 뒤지고 있습니다.
내 사이트에 포함 된 코드에 관계없이 여러 번 사용할 수있는 $ (문서) .ready가 있습니다.
문 내에서 예외가 발생하는 경우 .ready 이벤트가 두 번 발생하는 방법에 대한 jQuery의 버그 보고서를 읽었습니다. 그러나 다음 코드가 있어도 여전히 두 번 실행됩니다.
$(document).ready(function() {
try{
console.log('ready');
}
catch(e){
console.log(e);
}
});
콘솔에서 내가 보는 모든 것은 "준비"로 두 번 기록됩니다. 예외가있는 다른 다른 문제를 가지고 있습니다. 내 이해는 모든 .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 함수가있는 위치).
ready 이벤트는 두 번 보관 수 없습니다. 가능성이 높은 것은 브라우저가 펼쳐지는 블록을 다시 실행하는 코드가 포함 된 요소를 이동하거나 조작하는 코드가있을 것입니다.
<head>
폐쇄는 </body>
태그 안에 또는 사용하지 않겠다고 약속 태그를 포함하고 있습니다 $('body').wrapInner();
. 사용 $('body').html($('body').html().replace(...));
하면 동일한 효과가 있습니다.
나에게도 발생했지만 병합으로 확장가 두 번 포함 깨달았습니다.
KendoUI를 사용할 때 이런 일이 발생했습니다. 팝업 창을 호출하면 document.ready
이벤트가 여러 번 실행됩니다. 쉬운 해결은 한 번만 실행 가능 전역 플래그를 설정하는 것입니다.
var pageInitialized = false;
$(function()
{
if(pageInitialized) return;
pageInitialized = true;
// Put your init logic here.
});
항상 해킹이지만 작동합니다.
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
}
그러나 나는 당신이 두 번째로 전화하는 곳을 더 많이 본 것을 제안합니다.
사용을 고려할 수 있습니다.
window.onload
대신에
$(document).ready
부분을 새로 고치려고 할 때 문제가 발생했습니다. PartialViewResult 대신 반환 ActionResult를 호출했습니다. 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
</md-content>
//same controller mentioned again
<md-content ng-controller="AppCtrl">
//some thing
</md-content>
오늘도 비슷한 문제가있었습니다. 제 경우에는 A로 <button type="submit">
인해 $(document).ready(...)
이벤트가 다시 발생했습니다 . 코드를 변경하여 <button type="button">
문제 를 해결했습니다.
제출 버튼 후 다시 호출되는 document.ready 함수를 참조하십시오 . 자세한 내용은 여기 stackoverflow에서.
제 경우에는 $ (document) .ready가 잘못된 CSS로 인해 두 번 실행되었습니다. CSS의 일부가 background-image: url('');
iframe이 아무것도 표시하지 않고 다른 이유로 사용되는 경우 (예 : 다시로드하지 않고 파일 업로드) 다음과 같이 할 수 있습니다.
<iframe id="upload_target" name="upload_target" style="width:0;height:0;border:0px solid #fff;"></iframe>
문서에서 두 번째 on ready 트리거를 방지하는 src가 포함되어 있지 않습니다.
window.load 함수에 대한이 문제가 두 번 실행되었습니다. 그 이유는 메인 페이지에 동일한 javascript 파일과 .net usercontrol에 대한 참조가 있기 때문입니다. 메인 페이지에서 참조를 제거했을 때로드 기능은 한 번만 실행되었습니다.
참고 URL : https://stackoverflow.com/questions/10727002/jquery-document-ready-fires-twice
'ProgramingTip' 카테고리의 다른 글
목록에서 n 개의 임의 요소 가져 오기 (0) | 2020.11.07 |
---|---|
div 호버 배경색 변경? (0) | 2020.11.07 |
Rails ActiveRecord는 여러 쿼리없이 "where"절을 어떻게 연결합니까? (0) | 2020.11.07 |
프로그래밍 방식으로 혁신 할 때 ViewPager 애니메이션 기간 변경 (0) | 2020.11.07 |
MySQL SELECT DISTINCT 여러 열 (0) | 2020.11.07 |