I want to create a dynamic list with image and checkbox, it's working fine, however, when I generate it dynamically at the function onload, it doesn't generate properly
My code is below jsFiddle example
In the example there are 2 li in HTML 5 but the third li that generate in JavaScript doesn't generate properly
HTML code:
<body>
<!-- page -->
<div id="tryhtml" data-role="page" data-palette="">
<!-- header -->
<div data-role="header" data-position="fixed">
<h1>Application</h1>
</div><!-- /header -->
<div data-role="content">
<ul data-icon="none" id="FB" data-role="listview" data-inset="true" data-theme="c" data-dividertheme="a">
<li data-role="list-divider">Overview</li>
<li>
<input type="checkbox" name="checkbox-1a" id="checkbox-1a" class="custom" data-iconpos="right"/>
<label for="checkbox-1a"><img src="https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/261025_100001129460073_937883521_q.jpg" style="margin-right:20PX; float:left" width="35" height="35"/>Cheetos dffaf</label>
</li>
<li>
<input type="checkbox" name="checkbox-2a" id="checkbox-2a" class="custom" data-iconpos="right"/>
<label for="checkbox-2a"><img src="https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/261025_100001129460073_937883521_q.jpg" style="margin-right:20PX; float:left" width="35" height="35"/>Cheetos dffaf</label>
</li>
</ul>
</div>
</div><!-- /page -->
</body>
Onload function at js file:
var tag = '<li><input type="checkbox" name="checkbox-5a" id="checkbox-5a" data-iconpos="right"/><label for="checkbox-5a"><img src="https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/261025_100001129460073_937883521_q.jpg" style="margin-right:20PX; float:left" width="35" height="35"/>Roy dffaf</label></li>';
$('#FB').append(tag);
$('#FB').listview('refresh');
Working example: http://jsfiddle.net/brBdD/21/
var tag = '<li><input type="checkbox" name="checkbox-5a" id="checkbox-5a" data-iconpos="right"/><label for="checkbox-5a"><img src="https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/261025_100001129460073_937883521_q.jpg" style="margin-right:20PX; float:left" width="35" height="35"/>Roy dffaf</label></li>';
$('#FB').append(tag);
$('#FB').find('#checkbox-5a').checkboxradio().checkboxradio( "refresh" );
$('#FB').listview('refresh');
In your case .listview('refresh');
will only style listview and listview only, don't forget you also have a checkbox to style. Because of how jQuery Mobile works you first want to style checkbox and then listview.
Checkbox is usually styled with .checkboxradio( "refresh" );
but in this case we have a dynamically created checkbox so it first needs to be initialized with .checkboxradio()
.