JQuery Mobile и JSONP - PullRequest
       22

JQuery Mobile и JSONP

0 голосов
/ 14 декабря 2011

У меня есть мобильное приложение jquery, которое извлекает данные из нашей базы данных mysql с помощью JSONP.Данные вытягиваются нормально, но проблема возникает, когда я возвращаюсь на предыдущую «страницу» в своем приложении, затем нажимаю на другую опцию, она удваивает данные на следующем экране, и она просто будет складывать данные столько разкак я это делаю.Чего мне не хватает?

Приложение не выглядит правильно ни в одном браузере, но оно прекрасно выглядит в симуляторе ios или appmobi.При необходимости я могу опубликовать некоторый код, просто знайте, что он не будет выглядеть прямо в вашем браузере.

Спасибо за любую помощь, которую вы можете предоставить

$('#two').bind('pagecreate',function(event){  

var img = getUrlVars()["st"];
var photo = $('#img');

$.ajax({
  type: 'GET',
  url: 'http://serverhidden/json/img.php?st='+img,
  dataType: 'jsonp',
  success: function(data) {
    $.each(data, function(i,item){
    var image = '<img class="stmap" src="images/states/lrg/'+item.img+' "/>';                  

        photo.html(image);

       });            
     },
        error: function(e) {
        //called if there is an error
       //console.log(e.message);
    }
 });
});

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

Убедитесь, что вы не подписываетесь на ваше мероприятие несколько раз. Это кажется глупым, но это легко сделать.

Я бы порекомендовал вам добавить журналы на ваш сайт JQM, чтобы вы могли видеть, сколько раз ваш сайт обновлялся.

Вы также должны знать, что для обновления страницы JQMobile часто требуется вызов метода для обновления содержимого после отображения страницы. См. Здесь: jQuery. Проблемы с рендерингом с добавлением контента после инициализации страницы

.

Надеюсь, что это поможет.

0 голосов
/ 14 декабря 2011

Так что без какого-либо кода из вашего проекта это выстрел в темноте, но кажется, что вы заполняете псевдостраницу информацией о pageshow с помощью вызова .append(). Вместо использования .append(), используйте .html(), поскольку он заменит уже имеющуюся информацию, а не добавит к ней.

Если в каждом штате есть отдельная страница, вы можете привязать ее к событию pagecreate (или аналогичному), чтобы данные добавлялись только один раз, а не к каждому событию pageshow.

...