第二次运行(#main).html()
时,我的列表视图不会显示。
这是我的HTML,
<body>
<div data-role="page" id="addressbook">
<div data-role="header">
<h1>Header</h1>
<form id='headlist'>
<button incline="true" id='heed'>ALL</button>
<button incline="true">Button</button>
</form>
</div>
<div data-role="content">
<ul data-role="listview" id='main'>
<li><a href="#">Page</a></li>
<li><a href="#">Page</a></li>
<li><a href="#">Page</a></li>
</ul>
</div>
</body>
我在.html(strComname)
功能和strComname
警报确实显示之前添加了提醒,但列表视图不会显示。
我正在使用query1.9.1min.js
和query.mobile-1.3.1.min.js
这是我的剧本
<script>
var CAT = '';
var catlist = new Array();
var addra = [] ;
catlist[0] = '5';
catlist[1] = '6';
catlist[2] = '7';
catlist[3] = '9';
addra.push('Taipei');
addra.push('London');
addra.push('USA');
addra.push('JAPAN');
addra.push('CAL');
$(document).ready(function(e) {intc();
});
function intc () {
showme ('ALL');
showmelist();
}
function showmelist(data)
{
var strComname1 = '';
for ( i = 0 ; i < catlist.length ; i ++ )
{
strComname1 = strComname1 + '<input type="submit" value="' +catlist[i] + '"'+ 'data-inline="true"'+"id='bb"+catlist[i]+"' onclick=showme('TYPE','"+"') />" ;
}
var strComname2 = '<input type="submit" value="ALL">';
var strComname3 = strComname2 +strComname1;
$('#headlist').html(strComname3) ;
}
function showme ( CAT )
{
var strComname = '' ;
switch (CAT)
{
case 'ALL':
{
for ( i = 0 ; i < addra.length ; i ++ )
{
strCode = addra[i];
strComname = strComname + "<li><a href='#"+strCode+"'"+ 'data-transition="slide">' + addra[i] + '</a></li>' + "\n" ;
}
break;
}
case 'TYPE':
{
for ( i = 0 ; i < addra.length ; i ++ )
{
strCode = addra[i] ;
strComname = strComname + "<li><a href='#"+strCode+"'"+ 'data-transition="slide">' + addra[i] + '</a></li>' + "\n" ;
}
break;
}
}
alert(strComname);
$('#main').html(strComname) ;
$('#main').listview("refresh") ;
}
</script>
答案 0 :(得分:0)
实际上我不知道为什么在点击showme
时没有调用函数input
,但我知道如何让它工作。
通常,使用像onclick
这样的on *属性直接在HTML中指定JavaScript事件是不太好的做法。最好使用addEventListener
函数添加事件。这样,还可以向同一事件添加多个功能。 jQuery为此提供了快捷方式,可以在每个浏览器中使用。因此,在showmelist
函数的末尾,您可以添加以下代码:
$('#headlist input').click(function() {
if($(this).val() === 'ALL') {
showme('ALL');
} else {
showme('TYPE', $(this).val());
}
});
在测试期间,我稍微清理了一下你的代码。您可以在this JSFiddle找到一个有效的示例。