2011-11-14 12 views
0

프로젝트에서 작업 중이며 Google 크롬에서 .load가 작동하지 않는 문제가 계속 발생합니다. 여기에 자바 스크립트입니다 :. jquery가 크롬에서 작동하지 않습니다.

function link1() { 
    $('#loadarea').html('loading.....'); 
     setTimeout('link1_go()', 850); 
    } 
    function link1_go() { 
     $('#loadarea').load("regular.html"); 
     $('#loadarea').hide().fadeIn('slow'); 
    } 

그리고 여기에 액션 호출하는 클릭의 사업부입니다 :

<div id="link1" class="clickableload" onclick="link1()"> 

을 그리고 컨테이너에로드 할 수있다 :

<div id="loadarea"></div> 

그것은 파이어 폭스와 IE를 작동하고 크롬에서는 그렇지 않다. 어떤 제안이 있니?

+0

당신은 어떤 JS 오류를 얻고있다 : 경우에 대한

이 표시, 나는 다음과 같은 수정을 제안? 네트워크 탭은 무엇을 보여 줍니까? (어떤 요청이 있습니까?) –

+0

hide/fade를 주석 처리하고'.load()'를 직접 호출하기 위해 시간 초과를 무시하면 어떻게됩니까? (그냥 문제의 범위를 좁히는 데 도움이됩니다.) – nnnnnn

+0

'setTimeout'에 문자열을 전달하지 마십시오. 그냥 나쁜 생각입니다. 대신, 항상 함수 참조를 전달하십시오 (이 경우, @Jacob이 가리키는대로'setTimeout (link1_go, 850); '). –

답변

4

setTimeout 전화를 변경해보십시오. setTimeout에 문자열 매개 변수를 사용하면 브라우저의 eval 함수가 호출되며, 이는 특히 link1_go이 전역 함수가 아닌 경우 예상대로 수행되지 않을 수 있습니다. 대신 다음을 수행하십시오.

setTimeout(link1_go, 850); 
+0

가변 범위 지정은 브라우저간에 근본적으로 다른 동작을하는 한 가지 요소입니다. 이 환상적인 기사를 참조하십시오 : http://blog.rakeshpai.me/2008/10/understanding-eval-scope-spoiler-its.html – Jacob

+1

맞아, T.J.Crowder. 편집 됨. – Jacob

0

"이벤트 시퀀스"는 매우 신중합니다. 가능할 때마다 명령문이 원하는 순서로만로드되는지 확인합니다. 내 기본 디버깅 웹 브라우저 인 Chrome에는 문제가 없었습니다.

function link1() { 
    $('#loadarea').html(function() { 
     setTimeout('link1_go()', 850); 
     return '<p>loading.....</p>'; 
    }) 
} 

function link1_go() { 
    $('#loadarea').fadeOut().load("regular.html").fadeIn('slow'); 
} 

Since the "loadarea" is already displaying "loading ... "; a fadeout and a fadein would be more elegant then hide() and fadeIn. 

Furthermore, for the present request, I would get away with link1_go completely: 

function link1() { 
    $('#loadarea').html(function() { 
     setTimeout("$('#loadarea').fadeOut().load('regular.html').fadeIn('slow')", 850); 
     return '<p>loading.....</p>'; 
    }) 
} 
+0

모든 입력에 감사드립니다. 나는 그 문제를 발견했다. 그것은 localhost를 시도했을 때 작동하는 것으로 보인다. 로컬로 (htdocs 또는 www 폴더를 제외하고) html 문서를 여는 중이었고 작동하지 않았습니다. 하지만 xampserver로 시뮬레이션 한 결과 작동했습니다. –

관련 문제