문제

개념 증명 웹사이트를 만들려고 하는데 완벽한 성능 저하를 원합니다.따라서 먼저 일반 XHTML로 웹사이트를 코딩한 다음 클래스와 ID를 추가하여 jQuery에 연결하겠습니다.

내가 하고 싶은 한 가지는 결국 내 모든 링크에 대해 Ajax xmlhttprequest를 활성화하여 뷰포트 div에 표시하는 것입니다.나는 이 뷰포트가 여러 외부 페이지의 모든 xmlhttprequest에 대한 "범용" 덤프가 되기를 원합니다.

다음과 같은 것을 하드코딩할 수 있는지 궁금합니다.

<a href="blah.html" class="ajax">, <a href="bleat.html" class="ajax">

등.보시다시피 ajax 클래스를 사용하여 Ajax 요청을 호출하려는 모든 링크 태그를 제공합니다.jQuery를 기반으로 한 JS에서는 모든 긍정적인 ${"a").filter(".ajax") 가 해당 href [변수]를 ajax 요청으로 자동 로드하도록 코딩할 수 있기를 원합니다.

도와주세요.저는 n00b입니다.

도움이 되었습니까?

해결책

귀하의 예를 통해 다음을 수행할 수 있어야 합니다.

$('.ajax').click(function () { 
    // Your code here. You should be able to get the href variable and
    // do your ajax request based on it. Something like:
    var url = $(this).attr('href');
    $.ajax({
        type: "GET",
        url: url
    });
    return false; // You need to return false so the link
                  // doesn't actually fire.
});

"ajax"와는 다른 클래스를 사용하는 것이 좋습니다. 코드를 읽기가 조금 이상해지기 때문입니다. $('.ajax') 로 오해될 수 있다 $.ajax().

그만큼 $('.ajax').click() 부분은 페이지의 모든 요소에 대해 정확히 원하는 "ajax" 클래스를 사용하여 onClick 이벤트 핸들러를 등록합니다.그럼 당신은 사용 $(this).attr('href') 클릭한 특정 링크의 href를 얻은 다음 필요한 모든 작업을 수행하십시오!

다른 팁

같은 것 :

function callback(responseText){
    //load the returned html into a dom object and get the contents of #content
    var html = $('#content',responseText)[0].innerHTML;
    //assign it to the #content div
    $('#content').html(html);
}

$('a.ajax').click(function(){
    $.get(this.href, callback);
    return false;
});

내비게이션이 두 번 이상 표시되지 않도록 #Content DIV 외부에있는 모든 것을 구문 분석해야합니다. 나는 Regexp에 대해 생각하고 있었지만 jQuery를 사용하기가 더 쉽게이를 수행하여 예제를 업데이트했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top