Quel serait le meilleur moyen d'envoyer un message d'alerte à l'utilisateur s'il l'obligeait à se connecter, mais en même temps éviter un appel ajax? Je pourrais avoir le code comme <a href="#" id="vote">
qui déclencherait une fonction ajax basée sur le clic. Je pensais que je verrais sur le côté serveur si un utilisateur est connecté et le remplacer par: <a href="#" class="not-logged-in">
. Si vous cliquez dessus, cela les avertira qu'ils doivent se connecter. Le problème est que je pourrais avoir des styles CSS pour le #vote. Si à la place je le fais <a href="#" id="vote" class="not-logged-in">
il déclencherait à la fois l'appel ajax et l'alerte, donc je devrais envelopper l'appel ajax avec une vérification pour voir que la classe not-loggin-in n'existe pas, mais cela semble un peu fastidieux pour faire cela pour toutes mes fonctions de clic qui ont des appels ajax. Ou bien j'appellerais l'identifiant parent et définirais le style comme #parentId a {}? Ou y a-t-il de meilleures méthodes? Je ne suis pas sûr de ce que les gens font habituellement, alors je cherche des opinions. Merci!Envoyer un message d'alerte si l'utilisateur n'est pas connecté
Répondre
Que diriez-vous ceci:
Le code HTML:
<body class="not-logged-in"> -- or -- <body class="logged-in">
<a href="/vote/13" class="vote">Vote!</a>
Le jQuery:
$('body.logged-in .vote').click(function(){
$(this).append($.get($(this).attr('href'));
return false;
});
Si votre gestionnaire de clic pour l'élément a#vote
est lié à l'ID vote
, vous aurez devez soit modifier l'ID pour les utilisateurs déconnectés ou ajouter un conditionnel au gestionnaire de clic. Vous avez mentionné que vous ne voulez pas vérifier la classe not-logged-in
avant de procéder à l'appel AJAX, donc je suppose que cela signifie que vous préférez laisser le gestionnaire de clic seul et trouver un autre moyen d'avoir le lien ressemble au lien de vote mais n'agit pas comme le lien de vote.
Vous pouvez faire une id autre et lui donner le même style, comme ceci:
HTML:
<a href="#" id="fakeVote">
CSS:
#vote, #fakeVote { /* CSS here */ }
La bonne chose à propos c'est que vous pouvez simplement ajouter un nouveau gestionnaire de clic pour l'élément a#fakeVote
pour alerter t il s'est déconnecté des utilisateurs.
Si vous souhaitez réduire la durée de recherche DOM à chaque clic, attachez simplement la classe "loggedIn" à l'élément body et effectuez la vérification juste après le chargement de la page.
var loggedIn = $('body').hasClass('loggedIn');
Maintenant, vous n'avez pas à vérifier le lien lui-même, mais plutôt cette variable.
Vous pouvez également écrire un wrapper pour vos appels ajax.
$.fn.ajaxLoggedIn = function() {
if (loggedIn) {
$.ajax.apply(this, arguments);
}
else {
alert('You are not logged in');
}
}
- 1. API Skype Raw (PAS COM API) envoyer un message
- 2. Java Stack/Nest Count
- 3. envoyer un message texte via .net
- 4. MSMQ envoyer un message de problème ... (C#)
- 5. envoyer un message mouseclick dans .net
- 6. Envoyer un e-mail avec .NET - Pas si facile
- 7. Envoyer un message privé de discussion
- 8. Envoyer un message en utilisant localhost SMTP
- 9. Déterminer si l'utilisateur est connecté
- 10. udev ignore_device ne fonctionnera pas si l'appareil est déjà connecté
- 11. Envoyer une chaîne avec des sockets (pas si facile!)
- 12. Envoyer un message xmpp à l'aide d'une bibliothèque python
- 13. Comment vérifier si un Socket est actuellement connecté en Java?
- 14. Comment puis-je vérifier si RMI est connecté/peut être connecté?
- 15. Envoyer un message à l'application .NET à partir de javascript?
- 16. Comment envoyer un message de session à un utilisateur anonyme sur un site Django?
- 17. si l'utilisateur est déjà connecté ou non?
- 18. Envoyer un message XML via HTTP Publier sur l'IP: Port
- 19. .Net Envoyer un message à minuit en fonction de TimeZone?
- 20. joindre feuille de calcul pour envoyer un message avec gae
- 21. Comment vérifier si l'utilisateur actuellement connecté utilise un profil itinérant?
- 22. Envoyer un message de diffusion de toutes les cartes réseau
- 23. Zend_Auth vérifier si l'utilisateur est connecté
- 24. comment envoyer un message texte riche en System.Net.Mail
- 25. envoyer un message à une poignée de la fenêtre
- 26. Comment envoyer un message depuis iphone/touch to server (tomcat)?
- 27. Déterminer si un message sur tcp a été livré
- 28. vérifier si javascript est activé et afficher un message s'il n'utilise pas un contrôle personnalisé ASP
- 29. Crash shows Option studio visuel. Mais ne pas montrer ne pas envoyer le message
- 30. Ne pas autoriser la liaison à chaud d'images, sauf si connecté
Merci, n'a pas pensé à le faire de cette façon. – Roger