2009-12-24 2 views
1

Я играю с jQTouch для приложения для iPhone OS, которое я долгое время обсуждал. Я хотел попробовать использовать его как веб-приложение, поэтому начал играть с jQTouch. Для справки, вот страница + источник (все мой код в настоящее время в index.html, так что вы можете просто «View Source», чтобы увидеть все это):jQuery.data() работает в Mac OS WebKit, но не на iPhone OS?

http://rpj.me/doughapp.com/wd/

По существу, я пытаюсь сохранить уместную JSON объекты, извлеченные из Google Local в объекты DOM с использованием данных() метод (в данном примере, obj является Google Local объект):

$('#locPane').data('selected', obj); 

затем позже (в другой «панели»), получение этого объекта, чтобы быть использованный:

$('#locPane').bind('pageAnimationEnd', function(e, inf) { 
      var selobj = $(this).data('selected'); 
      // use 'selobj' here ... 
} 

В Chromium и Safari на настольной ОС (Snow Leopard в моем случае) это прекрасно работает (попробуйте).

Однако тот же код возвращает undefined для вызова $(this).data('selected') во втором фрагменте выше. Я также пробовал $('#' + e.target.id).data('selected') и даже наивный $('#locPane').data('selected'). Все варианты возвращают undefined в iPhone OS версии WebKit, но не на рабочем столе.

Интересно, что работает на Mobile Safari в iPhone Simulator также не работает.

Если вы посмотрите на полный источник, вы увидите, что я даже пытаюсь сохранить этот объект в моем глобальном объекте jQTouch (с именем jqt в моем коде). Это тоже не удается на мобильной платформе.

С кем-нибудь еще сталкивался с этим? Я признаю, что не являюсь программистом в Интернете/javascript по профессии, поэтому, если я сделаю ошибку идиот, пожалуйста, позвоните мне.

Заранее благодарю за помощь! -RPJ

Update: Я не делал это ясно в исходном сообщении, но я открыт для любого временного решения, если он работает стабильно. Поскольку у меня возникают проблемы с хранением этих объектов в целом, все, что позволяет мне сохранить их, пока достаточно. Благодаря!

ответ

1

Насколько я могу судить, кажется, что в Mobile Safari есть ошибка, хранящая объекты вроде этого. Поэтому я просто хотел сохранить компоненты объекта в хранилище данных документов.

$(document).data("lessonCode" , lesson.lessonCode); 
$(document).data("question" , lesson.question); 
$(document).data("answer" , lesson.answer); 
+0

К сожалению, мне тоже не повезло с этим методом. Я попытался хранить примитивные объекты данных (например, строки), например, в хранилище данных $ (document), но при этом получал неизменные значения. – rpj

2

Вы пытались использовать атрибуты data-ref HTML5? Данные должны быть строгими, но вы можете просто сделать

$('#locPane').attr('data-selected', "somestring"); 

и по-прежнему иметь действительную разметку HTML5.