Pour les liens avec une classe CSS particulière, je voudrais contrôler si les liens s'ouvrent dans la même fenêtre, une nouvelle fenêtre ou une fenêtre contextuelle (en utilisant onclick), basée sur la sélection de l'utilisateur à partir d'un groupe de boutons radio - puis enregistrer ce choix dans un cookie (tout en utilisant jQuery). Quelqu'un sait comment accomplir cela?Préférences des liens de contrôle avec contrôles de boutons radio et jquery
Répondre
C'est probablement que je le ferais ... (vous aurez besoin du jQuery cookie plugin):
<script language="javascript">
$(function() {
if($.cookie('link_pref')) {
var link_pref = $.cookie('link_pref');
$('#link_options_form :radio[value="'+ link_pref+'"]')
.attr('checked','checked');
}
$.cookie('link_pref',$('#link_options_form :radio:checked').val(), {expires: 0});
$('#link_options_form :radio').unbind('click').bind('click',function() {
$.cookie('link_pref', $(this).val(), {expires: 0});
});
$('a').unbind('click').bind('click',function() {
var link_pref = $.cookie('link_pref');
var href = $(this).attr('href');
var link_txt = $(this).text();
switch(link_pref) {
case 'new':
$(this).attr('target','_blank');
return true;
case 'pop':
window.open(href,link_txt,'width=640,height=480,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
return false;
case 'greybox':
// Other options found here:
// http://orangoo.com/labs/greybox/advance_usage.html
GB_show(link_txt, href);
return false;
default:
$(this).attr('target','_self');
return true;
}
});
});
</script>
<form id="link_options_form">
<label><input type="radio" name="link_options" value="same" /> Open in Same Window</label>
<label><input type="radio" name="link_options" value="new" /> Open in New Window</label>
<label><input type="radio" name="link_options" value="pop" /> Open in Pop-Up Window</label>
<label><input type="radio" name="link_options" value="greybox" /> Open in Greybox</label>
</form>
Edit: Désolé que je ne l'ai pas testé en premier. J'ai eu quelques fautes de frappe et j'ai oublié de mettre le cookie pour commencer (désolé). Je l'ai testé et il fonctionne maintenant avec votre HTML. Utilisez le code nouvellement édité ci-dessus. ;-)
Édition 2: J'ai ajouté un lien direct au cookie plugin juste au cas où, pour une raison quelconque, vous n'utilisez pas le bon.
Éditer 3: Personnellement, je ne définirais pas le bouton radio comme vérifié en javascript ... vous pouvez accéder au même cookie dans votre langue côté serveur je crois. Mais, j'ai fourni un moyen qui devrait fonctionner dans mon code nouvellement édité.
Édition 4: Le réglage initial du bug des boutons radio cochés a été corrigé. Ca devrait vraiment vraiment marcher cette fois. Pour de vrai. o_0
- 1. Désactivation des boutons radio avec jQuery
- 2. jQuery et groupes de boutons radio
- 3. jQuery plusieurs boutons radio
- 4. JQuery - créer de nouveaux boutons radio
- 5. Comment sélectionner tous les boutons radio avec une valeur spécifique et rendre invisible avec jQuery?
- 6. Sélectionnez l'élément en ligne admin Django avec des boutons radio
- 7. Meilleur moyen d'échanger deux contrôles .NET basés sur des boutons radio
- 8. Boutons radio HTML appelés boutons à bascule
- 9. boutons radio disparaissent dans IE et chrome
- 10. Boutons radio MFC - Comportement DDX_Radio et DDX_Control
- 11. Contrôle du bouton radio w/jQuery
- 12. cachette et montrant DIVS par sélection de groupe de boutons radio en utilisant JQuery
- 13. Valeur des boutons radio avec les pages maîtres
- 14. Comment puis-je calculer la somme des valeurs des boutons radio à l'aide de jQuery?
- 15. Shorter façon de le faire - boutons radio
- 16. Comment configurer les boutons radio dans Excel?
- 17. Boutons radio dans SSRS Rapport
- 18. La bonne façon de faire des boutons radio?
- 19. Rattachez rich: toggleControl aux boutons radio ou sélectionnez des éléments
- 20. Django BooleanField comme boutons radio?
- 21. Comment obtenir la valeur sélectionnée de la liste des boutons radio dans jquery?
- 22. Contrôles de Microsoft Chart - Liens Xml ?! C#
- 23. Ajax Liens et jquery
- 24. Soumettre un formulaire avec des liens et jQuery
- 25. Création d'un bouton radio dynamique avec JQuery
- 26. avancée Sql générations fenêtre Options a des boutons radio désactivés
- 27. comment fonctionnent les boutons radio avec la liaison mvc asp.net
- 28. Android: accès aux valeurs des boutons radio d'un service
- 29. comment obtenir la valeur des boutons radio sélectionnés
- 30. Boutons du contrôle gridview
Merci pour votre réponse, Kyle, mais je n'ai pas réussi à le faire fonctionner. Voici le code de la page complète que j'ai utilisé: http://textsnip.com/734b04 - merci pour votre aide. – user55655
Merci pour votre aide! Je l'ai eu à travailler, mais il trébuche beaucoup d'erreurs dans le navigateur. "Trop de récursion", entre autres. (Je ne suis pas sûr de ce que cela signifie) Aussi, une fois que j'ai sélectionné l'option "nouvelle fenêtre" et ouvert un lien, puis sélectionnez à nouveau "même fenêtre", il utilise toujours une nouvelle fenêtre pour les liens. Des idées? Merci encore. – user55655
Je ne suis pas sûr du problème de la récurrence car je ne suis pas en boucle sur quoi que ce soit. Avez-vous l'erreur dans Firefox? Combien de liens avez-vous sur cette page ?? Cela pourrait être le problème. De toute façon, le bug 'nouvelle fenêtre'/'même fenêtre' est corrigé. J'ai mis à jour le code ci-dessus. – KyleFarris