2011-09-30 7 views
-1

나는 이것을 알아 내려고 노력하고 있습니다. 난 그냥 일부 콘텐츠에 대한 간단한 아약스 하중을하지만 콘텐츠가 작동하지 않는 다른 모든 기능을로드하고 있지만 내용이 표시되지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다. 슈퍼 간단한 그것의 아마 뭔가도 있지만 .... 여기에 코드jquery Ajax 콘텐츠가로드되지 않습니다.

메인 페이지의 HTML

<ul><li id="content1">click this</li></ul> 
    <div id="ajaxContent"></div> 

외부 HTML

<div id="content1"><p>some content here</p></div> 

... 그리고 JS

$(function() { 

    var $items = $('ul li'); 

    $items.bind('click',loadContent); 

    function loadContent() { 

     var toLoad = 'content.html'+' #'+ $(this).attr('id'); 

     var $content = $('#ajaxContent'); 

     $content.append('<span id="load">LOADING...</span>'); 
     $('#load').fadeIn('normal'); 

     $content.load(toLoad,'',showNewContent) 

     function showNewContent() { 
     $content.fadeIn(1000,hideLoader); 
     } 

     function hideLoader() { 
     $('#load').fadeOut('normal'); 
     } 
    } 

}): 
+1

방화범이 끌린 아약스 응답을 보셨습니까? –

+0

당신은 콜론을 세미 끝에 대신 넣어야합니다. –

+1

그것은 귀하의 코드가 아니며 귀하의 content.html을 찾을 수 없습니다. 코드는 여기에서 잘 작동합니다 http://jsfiddle.net/BHaEj/15/ –

답변

0

입니다 문제는 귀하의 기능을 showNewContenthideLoader으로 선언하고 있다는 것입니다. 귀하의 loadContent 기능 측면. 즉, loadContent 함수가 호출 될 때까지 참조 할 수 없다는 것을 의미합니다 (그러나 함수 자체를 사용해야 함). showNewContenthideLoader 함수를 loadContent 함수 외부로 옮기면 작동합니다.

+1

그건 옳지 않아. 전체 범위는 코드가 실행되기 위해 파싱됩니다. 함수는 나중에 선언 된 경우에도 여전히 호출 할 수 있습니다. 이 피들에 나와 있듯이 중첩 된 함수에도 적용됩니다. http://jsfiddle.net/GolezTrol/qaUDY/ – GolezTrol

+0

아니요. 일하지 않았어. – Devender

+0

아, 고마워! 매일 새로운 것을 배웁니다. 그래도이 동작은 이전 브라우저에서도 일관되게 유지됩니까? 그가 IE 7 또는 8을 지원하려고한다면 귀하의 예는 여전히 효과가 있습니까? – jtfairbank

0

해시 (#의 부분)는 서버로 보내지지 않습니다. 이것이 유일한 변경 사항이라면 브라우저는 새로운 URL로 보지 않고 페이지를로드하지 않습니다. URL을 content.html?id=1 또는 다른 것으로 변경하고이 GET 매개 변수를 서버에서 올바르게 처리해야합니다.

+0

그는 새 페이지를로드하려고하지 않고 기존 페이지에 내용을로드하려고합니다. 당신은 URL을 변경할 필요가 없습니다. 또한,이 경우의 해시는 지정된 id를 가진 요소 만로드하도록 ajax 호출에 지시하는 것입니다. '페이지 조각로드 중'을 참조하십시오. http://api.jquery.com/load/ – jtfairbank

+0

해시를 사용하여 페이지 조각을 가져올 수 있습니다. –

+0

@ jtfairbanks & Interstellar_Coder.나는 URL을 바꾸는 것에 대해 말하는 것이 아닙니다. 나는 진짜와 다른 * url을 부르는 것에 대해 이야기하고있다. 그렇게하지 않으면 요청이 실행되지 않거나 브라우저가 캐시의 동일한 페이지를 사용할 수 있습니다. 이 경우, 이미 가지고있는 내용과 동일한 내용을 얻으므로 효과적으로 변경되지 않습니다. AJAX 요청인지 일반 요청인지에 관계없이 해시는 일반적으로 사용되는 브라우저에 따라 다르지만 일반적으로 서버로 보내지지 않습니다. – GolezTrol

관련 문제