0

当我(#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>
4

1 回答 1

0

实际上,我不知道为什么showme在单击 an 时不调用该函数input,但我知道如何使其工作。

通常,使用 on* 属性(如onclick. 最好使用该addEventListener函数添加事件。这样,还可以将多个功能添加到同一事件。jQuery 为此提供了快捷方式,适用于所有浏览器。因此,在函数的末尾showmelist,您可以添加以下代码:

$('#headlist input').click(function() {
    if($(this).val() === 'ALL') {
        showme('ALL');
    } else {
        showme('TYPE', $(this).val());
    }
});

在测试期间,我稍微清理了您的代码。您可以在此 JSFiddle中找到一个工作示例。

于 2013-11-10T18:49:06.953 回答