11
votes

JQuery Mobile Délégué VS Live VS Bind

Je ne peux pas sembler envelopper ma tête autour des différences entre les éléments suivants dans JQuery Mobile: xxx

Comment exécuter des scripts dans la tête de mes documents qui sont différents dans certaines pages ? Quelles méthodes dois-je utiliser pour appeler ces scripts?

mise à jour: Version JQuery: 1.7.1 jQuery mobile version: 1.1.0


0 commentaires

3 Réponses :


0
votes

C'est une excellente description: http: //jquerybyexample.blogspot.com/2010/08/bind-vs-live-vs-delegate-function.html

Mais la réponse courte est que si vous utilisez JQuery 1.7, vous devriez probablement commencer à utiliser la nouvelle API sur () au lieu de l'un de ces éléments: http://api.jquery.com/on/


2 commentaires

Cet article est en fait déroutant. Par exemple, .Live () ne se lie pas aux éléments que vous ciblez (jamais), il se lie au document élément (toujours) et vérifie les événements de bulletage pour L'élément cible à voir si elle correspond à la sélection que vous avez transmise à .Live () . De plus, .Live () peut être utilisé dans la chaîne, mais l'auteur utilise un exemple stupide pour montrer le contraire. Veuillez ne pas utiliser cet article comme base de vos informations sur ces fonctions.


Essayez cet article, c'est bien meilleur: ELIJAHMANOR. COM / 2012/02 / ...



15
votes

Vous lierait à un "événement page" qui expose jQuery Mobile, comme pageinit code>:

$(document).bind('pageshow', function () {
    var id = $.mobile.activePage[0].id;
    //you can use $.mobile.activePage to do work on the current page
});


7 commentaires

Merci pour les ressources. C'est bien. J'ai une autre question quelque peu liée. Disons que ma page d'accueil a un diaporama. Dois-je appeler le code de diaporama dans la fonction "pageInit" ou "pages de page"?


PagesHow Feuille chaque fois que l'utilisateur voit la page. Par exemple, il faudra tirer lorsque vous visualisez la page d'accueil pour la première fois, mais il ira également lorsque vous naviguez lorsque vous naviguez, puis de retour à la page d'accueil. Je configurais le diaporama dans le gestionnaire d'événements , puis arrêtez-le dans le gestionnaire d'événements et démarrez-le dans les pages gestionnaire d'événements. Cela fonctionnera pour la charge initiale car le Page de page incendie après la page pageInit événement.


Si je configurais le diaporama (c'est-à-dire une fonction pour init le diaporama) dans la page et le gestionnaire d'événements et le gestionnaire d'événements, ne ferait-il pas appeler la fonction deux fois?


Ce que je disais, c'était d'initialiser le diaporama (pas de démarrer) dans pageInit , puis démarrez-le dans pages, et arrêtez-le dans pageHide Ne pas utiliser la CPU sans raison. Je ne sais pas quel plugin que vous utilisez, mais normalement, vous pouvez initialiser un diaporama sans l'autoparting.


Ahhh je comprends. J'utilise FlexSlider en ce moment. Pouvez-vous recommander de superbes diaporamas spécifiquement pour mobile (c'est-à-dire avec des événements tactiles)?


Laissez-nous Continuer cette discussion en chat


FlexSlider n'est pas si mal. J'utilise beaucoup avec Jquery Mobile et je ne peux pas me plaindre jusqu'à présent :-)



0
votes

J'ai eu cette même question l'autre jour et j'ai constaté que cet article a fourni une pause claire sur chacune.

http: //jquerybyexample.blogspot. com / 2010/08 / bind-vs-live-vs-délégué-fonction.html


2 commentaires

Cet article regorge de déclarations non valides, voir mon commentaire sur la réponse de Julie Sheffield.


Essayez cet article, c'est vraiment un bon: elijahmanor.com/2012/02/...