Javascript 无法在初始化之前调用表上的方法;试图调用方法';刷新';
我想列出从数据库表到HTML页面的所有数据。当前共有3行数据,但仅列出2行数据 HTML.Javascript 无法在初始化之前调用表上的方法;试图调用方法';刷新';,javascript,jquery,jquery-mobile,jquery-mobile-table,Javascript,Jquery,Jquery Mobile,Jquery Mobile Table,我想列出从数据库表到HTML页面的所有数据。当前共有3行数据,但仅列出2行数据 HTML. 使用者 全体人员 许可证 JS. 函数searchperson(){ var xmlhttp=new XMLHttpRequest(); var url=serverURL()+“/searchfriends.php”; url+=“?userid=“+localStorage.getItem(“userid”)+”&search=“+ $(“#搜索”).val(); xmlhttp.onread
使用者
全体人员
许可证
JS.
函数searchperson(){
var xmlhttp=new XMLHttpRequest();
var url=serverURL()+“/searchfriends.php”;
url+=“?userid=“+localStorage.getItem(“userid”)+”&search=“+
$(“#搜索”).val();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
getSearchResults(xmlhttp.responseText);
}
}
open(“GET”,url,true);
xmlhttp.send();
}
函数getSearchResults(响应){
var arr=JSON.parse(响应);
var i;
$(“#mybody”).find(“tr”).remove();
对于(i=0;i
我希望列出所有数据,但只列出了2行数据。[未捕获错误:无法在初始化之前调用表上的方法;尝试调用方法“刷新”。]我使用了jquery移动页面id,它消除了错误,但仍然缺少数据。请提供帮助,非常感谢。对于JQM表格小部件,该方法称为
重建
(参考:)
由于http请求的异步行为,您可能不知道何时会收到响应,因此处理该响应的最简单方法是检查表小部件是否已实例化,然后调用所需的方法:
函数isInstanceOf(id,小部件){
var el=document.getElementById(id);
return!!$.data(el,'mobile-'+小部件);
}
函数addRow(id,evt){
var html='',
$table=$(“#”+id),
isInstance=isInstanceOf(id,'表'),
tableMethod=isInstance?“重建”:null;
html+='';
html+=''+id+'';
html+=''+evt+'';
html+=''+isInstance+'';
html+=''+(iInstance?tableMethod:'[create]')+'';
html+='';
$table.find('tbody').append(html);
$table.table(tableMethod);
}
$(文档).ready(函数(){
addRow(“CoTable”、“DomReady”);
});
$(文档).on(“pagecontainercreate”,函数(e,ui){
addRow(“CoTable”,e.type);
} );
$(文档).on(“tablecreate”,函数(e,ui){
addRow(e.target.id,e.type);
});
jQuery移动表
身份证件
来源
实例
方法
加载页面时,需要执行$(“#CoTable”).table()
(可能的选项作为参数)来初始化表。请参阅@Barmar上的示例。api提到,如果表具有数据模式=“回流”,它将自动初始化
。因此这可能更多的是调用getSearchResults
的时间问题。@Taplar它可能是在执行搜索的AJAX请求的回调中调用的。因此,jquery移动库应该已经加载了。删除pageinit
函数。添加$('#CoTable')。表('rebuild');
。
<script src="lib/jquery-1.11.2.min.js"></script>
<script src="lib/jquery.mobile-1.4.5.min.js"></script>
<div class="expandable-content">
<div id="SearchResult" class="ui-content">
<table data-role="table" data-mode="reflow" class="uiresponsive" id="CoTable">
<thead>
<tr>
<th>User</th>
<th>Personnel</th>
<th>License</th>
</tr>
</thead>
<tbody id="mybody"></tbody>
</table>
</div>
</div>
function searchperson() {
var xmlhttp = new XMLHttpRequest();
var url = serverURL() + "/searchfriends.php";
url += "?userid=" + localStorage.getItem("userid") + "&search=" +
$("#search").val();
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
getSearchResults(xmlhttp.responseText);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
function getSearchResults(response) {
var arr = JSON.parse(response);
var i;
$("#mybody").find("tr").remove();
for (i = 0; i < arr.length; i++) {
$("#mybody").append("<tr><td>" + arr[i].userid +
"</td><td>"
+ arr[i].personnel + "</td><td>"
+ arr[i].license + "</td></tr>");
}
$('#Results').bind('pageinit', function () {
$('#CoTable').table('refresh');
//$("#CoTable").table('refresh');
}