2013-02-27 1 views
0

J'ai un bon nombre de MVC3.0 vues partielles qui peuvent être réutilisés sur plusieurs pages. Chaque vue partielle a son propre JavaScript avec la fonction JQuery $ .Ready.

Je me demande si quelqu'un peut me aider sur ce qui est la meilleure pratique de l'utilisation par $.ready ci-dessous:

  1. Dois-je créer Ready.js qui contient tous les événements/fonctions qui devraient aller sous $.ready? Et se référer à la page de maquette.

  2. ou chaque page doit avoir leur propre.

  3. Qu'est-ce qui se passe lorsque la fonction $.ready exécute et ne peut pas trouver un élément étant appelé depuis la page vue partielle n'est pas utilisé pour cette page.

  4. Quelles sont les meilleures pratiques pour organiser le JavaScript en général, à savoir js pour chaque page/widget/contrôle?

+0

Cela dépend. Parfois, il est logique de conserver le code uniquement avec la page, il est nécessaire sur, d'autres fois il est plus logique d'organiser tout cela en un seul endroit. Si une méthode jQuery est appelée sur une collection vide d'éléments, rien ne se passera. –

+0

3) [ '$() .ready'] (http://api.jquery.com/ready/) ne cherche pas les éléments, donc il n'a pas d'importance si elle ne trouve pas. – Bergi

+0

Vous n'êtes pas sûr de trouver une bonne pratique. Beaucoup de développeurs expérimentés jurent que le fait d'avoir plusieurs .ready est une mauvaise pratique. J'essaie de l'éviter, mais je ne l'ai jamais vu causer un problème fonctionnel. Et donc, vous trouverez très peu de bonnes pratiques –

Répondre

2

Utilisez cette article

$(document).ready(function() { 
    // let's get up in heeya 
}); 

Cependant, il est très possible que vous pourriez avoir rencontré une fonction d'emballage différent, plus confus.

$(function() { 
    // let's get up in heeya 
}); 

Bien que cette dernière est un peu moins lisible, les deux extraits ci-dessus sont identiques. Ne me crois pas? Vérifiez simplement la source de jQuery. RootjQuery est simplement une référence à la racine jQuery (document). Lorsque vous passez un sélecteur à la fonction jQuery, il détermine quel type de sélecteur vous avez passé: chaîne, étiquette, id, fonction, etc. Si une fonction a été transmise, jQuery appellera alors sa méthode ready(), et passez votre fonction anonyme comme le sélecteur.

Questions connexes