2012-03-02 2 views
0

json 데이터 및 ajax가있는 JS 트리를 사용하는 응용 프로그램을 http://www.jstree.com/documentation/json_data에 개발 중입니다.외부 아약스 용 JS 트리 설정

$("#tree).jstree({ 
    "json_data": { 
     "ajax": { ... } 
    } .... 
}); 

다른 jquery ajax 호출이 문서의 다른 곳에서 만들어지고 있습니다. 현재, 트리는 자체 이름 공간 내에서 아약스 호출을 수행하므로 다른 아약스 함수와 충돌이 발생하지 않습니다. 아약스 호출에 응답하는 서버 문제로 인해 트리의 아약스 호출을 문서의 나머지 부분에서 사용하는 공통 아약스 처리기로 리디렉션 한 다음 핸들러에서 다시 트리에 데이터를 반환하도록해야합니다.

트리의 호출을 다른 함수로 리디렉션하고 콜백을 설정하여 트리에 다시 데이터를 반환하는 방법을 제안 할 수있는 사람은 누구입니까? 감사!

+0

왜 리디렉션 하시겠습니까? 아니면 기본 jsTree ajax 호출과 관련하여 변경하고 싶습니까? – Radek

+0

@Radek 지금 jstree는 자식 노드를 얻기 위해 ajax 호출을합니다. 그런 다음 트리에서 해당 노드를 추가합니다. jstree 내에서 모두 처리됩니다. 아약스 호출을하고 1) 자식 노드 정보를 다시 트리로 반환하거나 2) 외부 함수를 사용하여 노드를 추가하는 외부 함수를 호출하려고합니다. json 플러그인의 92 행을 "return $ .ajax (s.ajax);에서 변경해야한다고 생각합니다." "return $ [.ajax (parent node);]"를 사용하는 외부 함수와 같은 것으로. –

+0

외부 기능으로 인해 노드를 추가하려는 이유가 무엇입니까? – Radek

답변

0

나는 당신에게 아이디어를 줄 것이다. 에 명시된 바와 같이,

json_data 플러그인 : 그것은 당신의 요구 사항에 맞게 것이고, 아마 당신이 조금 더 그것을 밖으로 작동해야하지만 그것이 내가 당신의 질문에서 이해 한 내용을 어떻게 든 가까이 확실하지 documentation은, 당신은/리디렉션 beforeSend() callback function

"json_data": { 
     "ajax": { 
      beforeSend: function(xhr) { 
       my_custom_function(xhr); 
      } 
     } 
    } 

의 사용자 정의 함수를 만들어 사용 아약스 쿼리를 수행하고 사용자 정의 기능 곳을 정의 할 수 있습니다 염두에 함께 jQuery ajax settings object

로 거의 동일 너는 걸릴 수있어. XHR 객체 이상과하면을 사용자의 요구에 적응 : 내가 여기서 뭘하고있어 URL을 설정하는 것입니다

function my_custom_function(xhr) { 
    $.ajax($.extend(xhr, { 
     type: 'GET', 
     url: '/folders/tree_handler.json', 
     data: { 
      "operation": "get_children", 
      "parent_id": 1 
     } 
    })); 

    return false; 
} 

, 요청 유형 (GET) 및 매개 변수의 몇 당신이 통과 할 수있는 (예를 들어 parent_id가 변수가되기를 바랄 것입니다.) 더 편리한 것이면 무엇이든 가능합니다.

이 사용자 지정 함수에서 거짓을 반환해야 첫 번째 호출자 요청이 취소됩니다.

도움이되는지 알려주세요.

+0

제안 해 주셔서 감사합니다. 나는 알고 있었고, 글로벌 .ajaxSend()를 사용하여 ajax 호출 이전에 함수를 호출했다. 하지만 beforeSend() 콜백을 알지 못했습니다. 그것은 유망 해 보입니다.방금 다른 물건들로 바쁘게 지내 왔지만 시간이 지나면 문서를 파헤 치고 작동하도록 할 수 있는지 알아 봅니다. 나는 계속 너를 게시 할 것이다. –