Für alle Links mit einer bestimmten CSS-Klasse, würde ich gerne steuern, ob die Links im gleichen Fenster, ein neues Fenster oder ein Pop-up (mit onclick) basiert auf die Auswahl des Benutzers aus einer Gruppe von Radio-Schaltflächen - und speichern Sie diese Wahl in einem Cookie (alle mit jQuery). Wer weiß, wie man das erreicht?Steuer-Link-Einstellungen mit Radio-Button-Steuerelemente und jquery
Antwort
Dies ist wahrscheinlich, wie ich es tun würde ... (Sie erhalten die jQuery cookie plugin benötigen):
<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: Sorry, dass ich es nicht zuerst testen haben. Ich hatte ein paar Tippfehler drin und ich habe vergessen, den Cookie zu setzen, um damit zu beginnen (Entschuldigung). Ich habe es getestet und es funktioniert jetzt mit Ihrem HTML. Verwende den neu editierten Code oben. ;-)
Bearbeiten 2: Ich habe einen direkten Link zum Cookie-Plugin hinzugefügt, nur für den Fall, dass Sie aus irgendeinem Grund nicht die richtige verwenden.
Edit 3: Persönlich würde ich nicht den Radio-Button wie in Javascript aktiviert ... Sie können auf den gleichen Cookie in Ihrer serverseitigen Sprache, glaube ich, zugreifen. Aber ich habe einen Weg vorgesehen, der in meinem neu bearbeiteten Code funktionieren sollte.
Bearbeiten 4: Die Anfangseinstellung des Fehlers der aktivierten Radioknöpfe wurde korrigiert. Es sollte wirklich wirklich dieses Mal funktionieren. Wirklich. o_0
- 1. SVG ziehbar mit JQuery und Jquery-Svg
- 2. Sortierbar mit jQuery und Ajax
- 3. Capturing und Sprudeln mit jQuery
- 4. canjs mit jquery und Schnurrbart
- 5. jQuery und XML (mit CDATA)
- 6. Bildvorschau und entfernen mit jQuery
- 7. Problem mit Masterpage und Jquery
- 8. Sortieren mit Jquery und PHP
- 9. Floating-Elemente und mit jQuery
- 10. Probleme mit jquery und firebug
- 11. jquery .Mit und Bild zeigen
- 12. JQuery - ASP.NET und JQuery
- 13. jQuery-Selektor mit „und“ und „oder“
- 14. Kreis-Menü mit jQuery und jQuery Plugin Radmenu
- 15. Import jQuery-ui und jQuery mit NPM installieren
- 16. Layering Problem mit jQuery Akkordeon und IE7
- 17. Problem mit jquery UI droppable und livequery!
- 18. Ajax Post mit Django und Jquery
- 19. Formular mit AJAX und jQuery senden
- 20. jQuery und iFrame mit einer Feile
- 21. Export in CSV mit jQuery und html
- 22. Problem mit Jquery Opazität und IE
- 23. Problem mit jQuery Dialog und Datepicker Plugins
- 24. Problem mit JQuery Mobile und AJAX Post
- 25. Umgang mit Bildlaufleisten und jquery .width() Methode
- 26. Erstellen und Entfernen von Informationen mit jQuery
- 27. Aspx-Formulare und -Funktionen mit jQuery einspeisen
- 28. Routing mit AngularJS und jQuery Mobile
- 29. Zeichne Schaltplan mit html5 und jQuery
- 30. Gesuch mit jQuery und Laravel Rahmen
Danke für Ihre Antwort, Kyle, aber ich konnte das nicht zur Arbeit bekommen. Hier ist der vollständige Seitencode, den ich benutzt habe: http://textsnip.com/734b04 - danke für deine Hilfe. – user55655
Danke für Ihre Hilfe! Ich habe es zum Laufen gebracht, aber es löst viele Fehler im Browser aus. "Zu viel Rekursion", unter anderem. (Nicht sicher, was das bedeutet) Nachdem ich die Option "neues Fenster" ausgewählt und einen Link geöffnet habe und dann wieder "dasselbe Fenster" wähle, wird immer noch ein neues Fenster für die Links verwendet. Irgendwelche Ideen? Danke noch einmal. – user55655
Ich bin mir über das Rekursionsproblem nicht sicher, da ich nichts überlesen kann. Erhalten Sie den Fehler in Firefox? Wie viele Links hast du auf dieser Seite? Das könnte das Problem sein. Wie auch immer, der Fehler 'Neues Fenster'/'Gleiches Fenster' wurde behoben. Ich habe den obigen Code aktualisiert. – KyleFarris