我无法让这个jquery语句在页面加载时工作,但是当我刷新页面F5
时它会运行一次。
<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);
没什么。但是,当我刷新时,它会显示隐藏字段maxvalues
中HfId
的值,因为它是在函数getRecordspage
中分配的。
为什么这种奇怪的行为......任何建议......
修改
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 :</span> <span class="resultfieldvalues">' + employee.Desig_Name + '</span><br /><br /><span id="SalaryBasis" class="resultfields">Salary Basis :</span> <span class="resultfieldvalues">' + employee.SalaryBasis + '</span><span class="resultfields" style="padding-left:25px;">Salary :</span> <span class="resultfieldvalues">' + employee.FixedSalary + '</span><span style="font-size:110%;font-weight:bolder;padding-left:25px;">Address :</span> <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 :(得分:2)
您的getRecordspage
函数是异步的。它进行Ajax调用,当它完成时,设置您尝试读取的值。但是,在读取值之前,您不会等待完成调用。
答案 1 :(得分:1)
我的猜测是,在调用success
之后,正在执行$ .ajax(...)alert(maxvalues);
回调。如果确实如此,只需放置您的分页代码
$(".pager").pagination(maxvalues, {
//my syntax
});
在$ .ajax(...)success
回调中。
答案 2 :(得分:0)