2010-04-01 4 views
1

페이지로드시 jquery 문을 사용할 수 없지만 페이지를 새로 고치면 페이지가 F5 번 새로 고쳐집니다.이 jquery 문에 어떤 문제가 있습니까?

<div id="ResultsDiv"></div> 
<div id="pager" class="pager"></div> 
<input id="HfId" type="hidden" /> 
<script type="text/javascript"> 
var itemsPerPage = 5; 
$(document).ready(function() { 
    getRecordspage(0, itemsPerPage); 
    var maxvalues = $("#HfId").val(); 
    alert(maxvalues); 
    $(".pager").pagination(maxvalues, { 
    callback: getRecordspage, 
    current_page: 0, 
    items_per_page: itemsPerPage, 
    num_display_entries: 5, 
    next_text: 'Next', 
    prev_text: 'Prev', 
    num_edge_entries: 1 
    }); 
}); 
</script> 

최초의 페이지로드에서 alert(maxvalues);은 아무 것도 아닙니다. 그러나 새로 고침 할 때 getRecordspage 함수에 할당되어 있기 때문에 HfId의 숨겨진 필드에있는 maxvalues의 값이 표시됩니다.

왜 이런 이상한 행동 .... 어떤 제안 ...

편집 : 문제에 대한 자세한 내용은없이

function getRecordspage(curPage) { 
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/GetRecords", 
     data: "{'currentPage':" + (curPage + 1) + ",'pagesize':5}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(jsonObj) { 
      $("#ResultsDiv").empty(); 
      $("#HfId").val(""); 
      var strarr = jsonObj.d.split('##'); 
      var jsob = jQuery.parseJSON(strarr[0]); 
      var divs = ''; 
      $.each(jsob.Table, function(i, employee) { 
       divs += '<div class="resultsdiv"><br /><span class="resultName">' + employee.Emp_Name + '</span><span class="resultfields" style="padding-left:100px;">Category&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.Desig_Name + '</span><br /><br /><span id="SalaryBasis" class="resultfields">Salary Basis&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.SalaryBasis + '</span><span class="resultfields" style="padding-left:25px;">Salary&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.FixedSalary + '</span><span style="font-size:110%;font-weight:bolder;padding-left:25px;">Address&nbsp;:</span>&nbsp;<span class="resultfieldvalues">' + employee.Address + '</span></div>'; 
      }); 
    $(".pager").pagination(strarr[1], { 
      callback: getRecordspage, 
      current_page: 0, 
      items_per_page: 5, 
      num_display_entries: 5, 
      next_text: 'Next', 
      prev_text: 'Prev', 
      num_edge_entries: 1 
     }); 
      $("#ResultsDiv").append(divs); 
      $(".resultsdiv:even").addClass("resultseven"); 
      $(".resultsdiv").hover(function() { 
       $(this).addClass("resultshover"); 
      }, function() { 
       $(this).removeClass("resultshover"); 
      }); 
      $("#HfId").val(strarr[1]); 
     } 
    }); 
} 
+0

필자가 생각하는 getRecordspage 함수가 필요합니다. –

+0

getRecordspage (...)를 보자. – Strelok

+0

@David와 @strelok은 내 편집을 참조 ... –

답변

2

귀하의 getRecordspage 기능은 비동기입니다. 완료되면 Ajax 호출을 작성하여 읽으려는 값을 설정합니다. 그러나 값을 읽기 전에 호출이 완료 될 때까지 기다리지 않습니다.

+0

@David 성공 함수에 포함 시키면 콜백 함수가 계속 호출됩니다 .... –

+0

@David가 어떻게 할 수 있습니까? –

+0

@David가 작동하도록했습니다. 'async : false'가 트릭을 수행했습니다 .... –

0

(실종 기능 등) 최선의 충고 말할 것입니다 firefox을 사용하고 firebugfirequery을 설치하십시오.

그런 다음 몇 가지 중단 점을 넣고 값을 검사하십시오. 여기에 a가있다 tutorial

EDIT : 내가이 정보를 더 잘 편집하기 전에이 대답을했다.

+0

@David 방화 광 및 웹 developoer 툴바에 오류가 발견되지 않았다 ... –

1

제 생각에 $ .ajax (...) success 콜백이 수행되고 있습니다. 이 호출 된 후입니다. 즉 실제로 그렇다면, 당신의 페이지 매김 코드 $ 아약스 (...) success 콜백에서

$(".pager").pagination(maxvalues, { 
    //my syntax 
}); 

놓습니다.

+0

@sterlok 성공 함수에 포함 시키면 내 콜백 함수가 계속해서 호출된다. –

+0

그것은 지금 pls 다. – Strelok

+0

@sterlok는 이제 내 'getrecordspage' 함수를 봅니다 ... –

관련 문제