listview("refresh") not working from 2nd item in the list.

listview("refresh") not working from 2nd item in the list.

I've "continent.html" with two list items:
  1. <ul data-role="listview">
  2. <li><img src="A.png" class="ui-li-icon"> <a href="countries.html?c=a">Asia</a></li>
  3. <li><img src="E.png" class="ui-li-icon"> <a href="countries.html?c=e">Europe</a></li>
  4. </ul>

"countries.html" consumes JSON and populates the list:
  1. <div data-role="page">
  2. <script>
  3. $.getJSON("http://api.somewhere.com/countires", function(data) {
  4.  $('#catList').empty();
  5.  $('#catList').listview();
  6.      $.each(data.DATA, function(index, item) {
  7.          var url = 'cities.html?c=' + item[0];
  8.          var title = '<li><a href="' + url + '>' + item[1] + '</a></li>';
  9.          $('#catList').append(title);
  10.      });
  11.      $('#catList').listview("refresh");
  12. });
  13. </script>
  14. <div data-role="header">
  15. <h2>Countries</h2>
  16. </div>
  17. <ul data-role="listview" id="catList">
  18. </ul>
  19. </div>

If I click on Asia first, I see "China, Japan, ..." but Europe comes up empty (although I see the data in #catList. If I click on Europe first, I see "France, Germany, ..." but nothing in Asia. What am I doing wrong?