2014-12-02 4 views
0

나는 자바 스크립트에서 $ ("# my-div") .html (data)를 호출하기 때문에 html을 반환하는 AJAX 호출이있다.jsp에서 javascript로 데이터 전달하기

그러나 javascript를 통해 요소를 설정해야하는 twbsPagination을 사용하고 있습니다.

HTML 요소가

<input type="hidden" name="totalPageCount" id="totalPageCount" value="${totalPageCount}"/> 
<ul id="pagination" class="pagination-sm"></ul> 

로 정의하고 자바 스크립트입니다 : 내가 숨겨진 필드 totalPageCount 올바른 값이 있는지 확인했다하더라도

callingFunction() { 
    data = doAjaxCall().done(myFunction); 
    } 

    myFunction(data) { 
    $('#pagination').twbsPagination({ 
      totalPages: $("#totalPageCount").val(), 
      visiblePages: 5, 
      onPageClick: function (event, page) { 
       ... 
      } 
     }); 

    $("#my-div").html(data); 
    } 

, $ ("#의 totalPageCount") .val()은 빈 문자열을 리턴합니다. 그것은 jQuery가보고있는 것의 일부가 아니라 데이터의 html 내부에만 존재하는이 요소를 찾고 있기 때문에 이것이라고 생각합니다.

이런 종류의 데이터를 전달하는 표준 방법은 무엇입니까?

+0

약간의 질문을 명확히 해 주시겠습니까? 'totalPageCount'의 값은 언제 설정됩니까? 그것은 당신의 JSP에서 서버 측 렌더링되거나 AJAX 호출이 반환 된 후에 설정됩니까? 또한'twbsPagination'은 언제 호출됩니까? 바로? 아니면 아약스 전화를 한 후에? – Jack

+0

totalPageCount는 AJAX 호출 중에 서버 측에 설정됩니다. 나는 그것을 클라이언트 측에 숨겨진 입력에 넣어서 만들었다. 내 Ajax 호출이 반환되기 전에 "사용 가능"하지만 어떻게 사용할지 모르겠습니다. twbsPagination이 호출 될 때 나는 모른다.하지만 원래는 내 document.ready에 JS가있다. 잘 작동하는 것처럼 보였다. (그냥이 사용 사례를 충족시키지 못한다.) – Jeremy

+0

'doAjaxCall'은 비동기 호출인가? – Jack

답변

0

자바 스크립트를 실행 한 순서대로 전환하여 간단히 해결할 수있었습니다.

$("#my-div").html(data); 

$('#pagination').twbsPagination({ 
     totalPages: $("#totalPageCount").val(), 
     visiblePages: 5, 
     onPageClick: function (event, page) { 
      ... 
     } 
    }); 

jquery가 먼저 해당 요소를 찾음으로써 해당 요소를 찾을 수있었습니다.

+0

예! 귀하의 업데이트 후 이것은 내 생각이었습니다 :) – Jack

+0

당신은 그것을 못 박 았어. 아직도 이것이 올바른 방법임을 확신하지 못합니다. – Jeremy

+0

경험상이 방법은 상당히 표준적인 방법입니다! 우려할만한 점은 여러 개의 ajax 호출 ('twbsPagination()을 여러 번 호출)이 발생하면 'onPageClick'이 여러 번 바인딩되는 것입니까? 찢어지기를해야합니까? – Jack

관련 문제