我正在通过 GET 响应消息从服务器(php 文件)加载可折叠的 ListView 。但是,尽管刷新了 jQuery 元素,jQuery 格式并未应用于添加的 HTML
我的页面在这里:http://i.cs.hku.hk/~hsbashir/Project_Work/events/events.html
HTML代码(仅限相关代码)
<script>
lastRecord=0;
function loadEvents(){
$('#sample').html( 'hello' );
$.get(
"eventquery.php?lastRecord="+lastRecord,
function( data ) {
$('#loadCollapsible').append( data )
.listview( 'refresh' );
});
}
</script>
</head>
<body style="background-color : #e9e9e9;" onload="loadEvents()">
<div data-iconpos="none" data-role="collapsibleset" data-theme="a" data-content-theme="a">
<div data-role="collapsible" data-collapsed="false">
<h2><img src="today_calendar.png" style="height: 60px; vertical-align:middle;"> Today's Events </h2>
<div id="loadCollapsible">
<!-- Load from php -->
</div>
</div>
PHP代码(仅限相关代码)
while ($row = mysql_fetch_array($result)){
print '<div data-role="collapsible" data-collapsed="false">';
print '<h5>'.$row['Title'].'<h5>';
print ' <ul data-role="listview">';
print '<li><a href="#">';
print '<table><tr><td>Date</td>';
print '<td style="padding: 10px;">'.$row['Date'].'</td>';
print '</tr><tr>';
print '<td> Time </td>';
print '<td style="padding: 10px;">'.$row['Time_Duration'].'</td>';
print '</tr><tr>';
print '<td> Venue </td>';
print '<td style="padding: 10px;">'.$row['Venue'].'</td>';
print '</tr></table></a></li>';
print '<li style="background-color: #CADECC;">';
print '<button class="ui-btn ui-shadow ui-corner-all ui-btn-icon-left ui-icon-calendar" style="width: 170px; float: right; position: relative;">Add to calendar</button>';
print '</li></ul>';
print '</div>';
}
最佳答案
在调用刷新方法之前,必须首先初始化 jQuery Mobile ListView 。
因为您使用 ajax 加载列表,所以它不会自动初始化。试试这个:
function loadEvents(){
$('#sample').html( 'hello' );
$.get(
"eventquery.php?lastRecord="+lastRecord,
function( data ) {
$('#loadCollapsible').append( data );
$('#loadCollapsible ul').listview().listview( 'refresh' );
});
}
关于javascript - 尽管刷新,jQuery 格式仍不适用于 ajax 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24835160/