我在HTML文件中直接硬编码了Div中的jQuery Mobile Buttons并且它正确显示。请找到下面的图片
但是当我通过JavaScript修改它时,这两个按钮就会丢失。不知道为什么。请找到下面的图片
可以因为jQuery Mobile Listview动态删除某些样式吗?
这是HTML
<div data-role="content" data-theme="c">
<div id="ListOfCals">
<ul data-role="listview">
<li data-icon='false'>
<div id='ColorCodeDiv' style='background-color:#FFF;'></div>
Calendar 2
<p style='margin-top:2px'><strong><font size='2' color='#006600'>Active</font></strong></p>
<div id='calendarListView'>
<a name='del' data-role='button' href='#' data-icon='delete' data-theme='g' data-iconpos='notext' data-inline='true' data-bttype='delete'></a>
<a name='del' data-role='button' href='#' data-icon='gear' data-theme='e' data-iconpos='notext' data-inline='true' data-bttype='edit'></a>
</div>
</li>
</ul>
</div>
这是使用的JavaScript代码
var strCalList = "<ul data-role='listview'>";
var ListOfCals = JSON.parse(data.d);
$(ListOfCals).each(function(){
strCalList +="<li data-icon='false'>";
strCalList += "<div id='ColorCodeDiv' style='background-color:"+$.trim(this.ColorCode)+"'></div>"
strCalList += this.CalendarName;
if(this.Active==true){
strCalList +="<p style='margin-top:2px'><strong><font size='2' color='#006600'>Active</font></strong></p>" ;
}
else if(this.Active==false){
strCalList +="<p style='margin-top:2px'><strong><font size='2' color='#FF0000'>Inactive</font></strong></p>";
}
strCalList +="<div id='dvBtn'>";
strCalList += "<a name='del' data-role='button' href='#' data-icon='gear' data-theme='e' data-iconpos='notext' data-inline='true' data-bttype='edit' ></a>";
strCalList +="<a name='del' data-role='button' href='#' data-icon='delete' data-theme='g' data-iconpos='notext' data-inline='true' data-bttype='delete'></a>";
strCalList +="</div>";
strCalList +="</li>";
});
strCalList = strCalList+"</ul>";
$('#ListOfCals').html(strCalList);
$('#ListOfCals ul').listview();
有人可以找出原因吗?感谢您提前的时间。
答案 0 :(得分:0)
我刚试过你的例子,对我来说,使用Windows 7和Firefox Nightly时没问题,请参阅here。您是否只有特定配置才能解决问题?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Test</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="content" data-theme="c">
<div id="ListOfCals">
<ul data-role="listview">
<li data-icon='false'>
<div id='ColorCodeDiv' style='background-color:#FFF;'></div>
Calendar 2
<p style='margin-top:2px'><strong><font size='2' color='#006600'>Active</font></strong></p>
<div id='calendarListView'>
<a name='del' data-role='button' href='#' data-icon='delete' data-theme='g' data-iconpos='notext' data-inline='true' data-bttype='delete'></a>
<a name='del' data-role='button' href='#' data-icon='gear' data-theme='e' data-iconpos='notext' data-inline='true' data-bttype='edit'></a>
</div>
</li>
</ul>
</div>
<script>
$(document).on("mobileinit", function(){
var strCalList = "<ul data-role='listview'>";
var ListOfCals = JSON.parse(data.d);
$(ListOfCals).each(function(){
strCalList +="<li data-icon='false'>";
strCalList += "<div id='ColorCodeDiv' style='background-color:"+$.trim(this.ColorCode)+"'></div>"
strCalList += this.CalendarName;
if(this.Active==true){
strCalList +="<p style='margin-top:2px'><strong><font size='2' color='#006600'>Active</font></strong></p>" ;
}
else if(this.Active==false){
strCalList +="<p style='margin-top:2px'><strong><font size='2' color='#FF0000'>Inactive</font></strong></p>";
}
strCalList +="<div id='dvBtn'>";
strCalList += "<a name='del' data-role='button' href='#' data-icon='gear' data-theme='e' data-iconpos='notext' data-inline='true' data-bttype='edit' ></a>";
strCalList +="<a name='del' data-role='button' href='#' data-icon='delete' data-theme='g' data-iconpos='notext' data-inline='true' data-bttype='delete'></a>";
strCalList +="</div>";
strCalList +="</li>";
});
strCalList = strCalList+"</ul>";
$('#ListOfCals').html(strCalList);
$('#ListOfCals ul').listview();
});
</script>
</div>
</body>
</html>