سؤال

أقوم بإنشاء تطبيق ويب على شبكة الإنترنت مدفوعة بتصنيف الويب يستهدف أجهزة iOS. أحاول استخدام jQuery Mobile ، لكن لدي مشكلة في إنشاء الأشكال المختلفة.

يتم أخذ خيارات النموذج من استعلام قاعدة البيانات ، بحيث يتم إدراجها في الصفحة بعد تحميلها ، وبالتالي فإن "التخلص من JQuery" لا يحدث. إلقاء نظرة سريعة على المصدر ، لا يبدو أن هناك أي طريقة واضحة للاتصال بهذا في هذه المرحلة (بالطبع إنه إصدار ألفا ، وأعتقد أن هذا سيكون طلبًا شائعًا بشكل معقول ، لذلك آمل أن يكون ذلك تأتي). هل هناك نوع من الحل التي يمكنني وضعها للقيام بذلك؟ أنا مهتم بشكل خاص بأزرار الراديو ، وخانات الاختيار وحدد القوائم.

هل كانت مفيدة؟

المحلول

هذا يتجول في الداخلية غير الموثقة ، لكن ما يلي يعمل بالنسبة لي:

$("#some-div").load("/html/fragment/", 
                    function() { 
                      $(this).find("input").customTextInput();  
                    });

هناك طرق مكافئة للأزرار ومربعات الاختيار وما إلى ذلك.

ألق نظرة على _enchanceControls هكذا] الطريقة في http://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.js.

تحديث ل 1.0Alpha2: كما يمكن توقعه عند اللعب مع المكتبة الداخلية ، لم يعد هذا يعمل في أحدث إصدار. التغيير customTextInput() ل textinput() يعمل على إصلاحه قليلاً ، لكن السمة لا يتم تطبيقها بالكامل لسبب ما. تم تحذيرنا...

نصائح أخرى

تحديث

Beta2 لديه create حدث. سأقوم بتحديث الأسئلة الشائعة الخاصة بي عند إصدار Beta2. يرى http://jquerymobile.com/blog/2011/07/22/jquery-mobile-team-update-week-of-july-18th/

الأسئلة الشائعة المحدثة: http://jquerymobiledictionary.pl/faq.html


كما اقترح caffeinefueled - .page() هي الطريقة لجعل JQM تعمل مع أي جزء من HTML

.page() يمكن أن يسمى مرة واحدة فقط لعنصر. اتصل به على عنصر التفاف الذي تضيفه إلى الصفحة. يجب أن تتعامل مع كل شيء.

الإجابة المحددة الحالية هي قديمة قليلاً. استخدم "تحديث" ، وليس "صفحة" ، لتصميم المحتوى المضافة ديناميكيًا (القوائم أو النماذج).

إذا قمت بإضافة عناصر إلى ListView ، فستحتاج إلى استدعاء طريقة Refresh () عليها لتحديث الأنماط وإنشاء أي قوائم متداخلة تمت إضافتها. علي سبيل المثال، $('ul').listview('refresh');

عبر مستندات jQuery Mobile ، 1.0.4a

بعد انتهاء مكالمة AJAX الخاصة بك وإدراج عناصر النموذج ، حاول الاتصال:

$("#the-page-id").page();

أعتقد أن فريق JQuery-Mobile سيضيف طريقة .refresh () على عناصر واجهة المستخدم المختلفة لحل هذه المشكلة في المستقبل.

نعم القضية كما وصفت. يتم إطلاق "التعبئة" عندما تكون الوثيقة جاهزة. ولكن نظرًا لأن استفسارات DB غير متصلة بالإنترنت غير متزامن ، فإنه ينتهي بعد إطلاق المستند. READY. لذلك يتم تحديث DOM في وقت لاحق من العملية وليس لديها CSS الإضافية إضافة إلى جميع divs وعناصر القائمة.

أعتقد أنه سيتعين عليك تغيير مصدر Mobile JS حتى لا يتم تشغيله على المستند جاهزًا ولكن يتم تشغيله عندما تخبره بالتشغيل. ثم يجب عليك استدعاء هذه الوظيفة في رد اتصال قاعدة البيانات الخاص بك.

يبدو أن هذا هو الخيار الوحيد في الوقت الحالي.

تقليديا استخدمت jqtouch والآن sencha. لم ألعب كثيرًا مع JQuery Mobile.

بدلاً من ذلك - يمكنك كتابة HTML بعد الاستعلام عنها خارج قاعدة البيانات باستخدام أنماط CSS اللازمة عليها. إذا كنت تستخدم البرنامج المساعد Firebug لـ Firefox ، فيمكنك معرفة ما هي الأنماط / الفصول التي يتم تطبيقها عند تشغيل التعبئة. يمكنك فقط كتابة HTML باستخدام تلك الاتفاقيات. ليست مثالية ، ولكنها ستعمل.

Naugtur على حق ، عليك الاتصال .page () على أي عنصر تضيفه إلى DOM ، ثم يعمل بشكل جيد:

var el = $('<input type="text"/>')
el.page();
$('#something').append(el);

هذا عمل بالنسبة لي (jQueryMobile1.7.0):

$('#formular').append('<div data-role="fieldcontain" class="ui-hide-label">' +
'<label for="name" class="ui-hidden-accessible">Name:</label>' +
'<input type="text" name="name" size="25" id="name" placeholder="Name"/>' +
'</div>');  
$('#name').textinput();

يوجد حاليًا ما يسمى وظائف البرنامج المساعد لجميع أنواع عناصر النماذج (على سبيل المثال ، Slider ، TextInput ، إلخ) لإنشائها.

إليك رابطًا للمستندات لهذه الميزة التي تحدث عنها توم. لست متأكدًا تمامًا عندما تمت إضافتها ، لكنني أستخدمه وهو يعمل بالنسبة لي!

http://jquerymobile.com/test/docs/forms/plugin-eventsmethods.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top