Я пытаюсь получить данные от какого-то внешнего JSON (http://ip-api.com/json). Затем я хочу использовать клавиши для динамического заполнения списка. Я хочу, чтобы каждый элемент списка был ссылкой, и когда вы нажимаете на ссылку, страница jQuery Mobile будет содержать соответствующее значение ключа. У меня две мобильные страницы jQuery, один дом и еще один.Как динамически заполнять jQuery мобильные страницы с использованием данных JSON?
Я пытаюсь достичь этого, изменив идентификатор второго «data-role = page» div на текущие данные ключа, а также добавив данные ключа в h2 и добавив данные значения в p. Он создает правильный список ключей, но когда я нажимаю на первый элемент, h2 содержит ВСЕ ключи, а p содержит ВСЕ значения. Как я могу изменить это, чтобы каждая пара ключей/значений заканчивалась как h2 и p какой бы страницы jQuery Mobile в настоящее время не была создана, щелкнув соответствующий элемент списка клавиш?
Я пытался использовать код от How to populate a jQuery Mobile ListView with JSON data?, но я не могу заставить его работать, поскольку он не использует внешний JSON.
<!DOCTYPE html>
<html>
<head>
<title>Geo-Location Data</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="assets/css/themes/geoLocation.css" />
<link rel="stylesheet" href="assets/css/themes/jquery.mobile.icons.min.css" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile.structure-1.4.5.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="assets/js/geoLocation.js"></script>
</head>
<body>
<div data-role="page" id="homePage">
<div data-role="header">
<h1>Geo-Location Data</h1>
</div>
<div data-role="main" class="ui-content">
<div data-role="collapsible" data-collapsed="true">
<h2>Click here for Geo-Location Data</h2>
<ul id="list" data-role="listview" data-filter="true" data-inset="true" data-icon="user" data-autodividers="true">
</ul>
</div>
</div>
</div>
<div data-role="page" id="dataPage">
<div data-role="header">
<h2 id="dataHeading"></h2>
</div>
<div data-role="content">
<p></p>
</div>
</div>
</body>
</html>
$(document).ready(function() {
$.getJSON("http://ip-api.com/json", function(data){
$.each(data, function(key, val){
$("ul#list").append('<li>' + '<a href="#' + key + '" data-transition="slide">'+ key + '</a>' + '</li>');
$("ul#list").listview("refresh");
$("div#dataPage").attr("id", key);
$("h2#dataHeading").append(key);
$("p").append(val);
});
});
})