2011-03-02 3 views
0

내 제한된 jQuery/javascript 지식과 함께 http://www.asual.com/jquery/address/-과 jQuery 주소 플러그 인을 사용하는 방법을 배우는 데 약간의 어려움이 있으며 심각하게 도움을 얻을 것입니다!jQuery 주소 플러그인 도움말

지금까지 내 코드는 다음과 같습니다 : 나는 희망하고있다

jQuery(function($) { 
    $.ajaxSetup({ cache: false }); 
    var hijax = $('ul.hijax a'); 
    var loader = $('<div id="spinner"></div>'); 
    var container = $('#ajax-container'); 
    hijax.address(function() { 
    dis = $(this); 
    hijax.removeClass('ajax-on'); 
    dis.addClass('ajax-on'); 
    var url = dis.attr('href') + ' #biog-container'; 
    container.html(loader).load(url); 
    return dis.attr('id'); 
    }); 
}); 

상당히 자기 explanitory입니다. 나는 idbiog-containerdiv의 내용을 AJAX를 통해로드하는 페이지에 대한 링크가 ul입니다. AJAX는 정상적으로 작동하고 URL은 id 개의 링크로 업데이트되지만 뒤로 버튼을 클릭하면 URL이 변경되지만 내용은 동일하게 유지됩니다.

어떤 생각이라도, 나는 어리 석고 있냐?!

+0

필자의 링크가 하이재킹하는 일반 링크임을 추가해야합니다. 링크는 실제 웹 페이지 (예 : mywebsite)를 가리 킵니다.co.kr/this/page/right/here/ –

답변

1

솔직히 말해서 address 방법은 작업 방식을 너무 많이하지 않습니다. 사실, 플러그인은 자동으로 지원을 추가하지 않습니다.

그러나 매우 간단합니다. 주소가 변경되면

$.address.change(function(e){ 
    // The function receives a single eventobject parameter that contains the 
    // following properties: 
    // value, path, pathNames, parameterNames, 
    // parameters, queryString 

    /* Do something based on e */ 
}); 

, 함수가 트리거됩니다 : 당신은 설정에 change 방법에 대한 핸들러를 가지고있다. 주소 변경이 내부 또는 외부에서 발생할 때 설정할 수있는 다른 이벤트 인 internalChangeexternalChange도 있습니다.


편집 : 그냥 위의 확장 :

이 작동 그것의 전체 고장 예입니다.

// Override the click events of links 
$("a").click(function(e) { 
    e.preventDefault(); 
    $.address.path(this.id); 
}); 

// Method called with the address changes 
$.address.change(function(e) { 
    // This is called when the 
    $("#content").html("Something based on " + e.value); 
}); 

, 그것은 링크의 ID로 (플러그인의 측면에서) 주소의 경로를 설정합니다. 이것은 뒤로/앞으로 제대로 작동하도록 작업을 생성합니다. 링크 자체는 변경되지 않으므로 JavaScript가 활성화되어 있지 않으면 링크 주소가 무엇이든 상관없이 이동합니다.

$.address.change 비트는 처리기를 설정합니다. 여기서 콘텐츠를로드합니다. 필자의 예에서는 e.value을 사용하여 주소 경로의 값을 얻습니다. 따라서 /link1, /link2 등이 될 것입니다.이 핸들러는 링크가 내부적으로 (플러그인에 의해) 변경되거나 외부 적으로 (브라우저 앞뒤로) 변경 될 때 호출됩니다.

참고 : jQuery 1.5.1에서 완벽하게 작동하지 않는 것으로 나타났습니다. jQuery 1.5 속성 선택자 (주소 플러그인이 사용하는 것 같다)에 대한 변경과 관련이 있다고 확신한다. jQuery 1.4 잘 작동합니다.

+0

안녕하세요 @ 조나단, 답장을 보내 주셔서 감사합니다. 네가 나를 위해 너무 높은 바를 설정 했어! 나는 정말로 저조한 디자이너 일 뿐이며 최선의 노력에도 불구하고 뇌가이 정보로 무엇을해야하는지 이해할 수 없습니다. 더 이상의 팁! 건배 :) –

+0

안녕하세요, Andy - 업데이트를 만들었습니다. 그것이 물건을 더 한층 설명하기를 바라 라 :) –

+0

친구, 그것은 매우 굉장하다! 내가 알아낼 수없는 것은 address.change 함수에 대한 클릭 된 링크의 URL을 전달하는 방법입니다. http://jsfiddle.net/richardsweeney/c5pkG/ –