Настройки ссылок управления с помощью переключателей и jquery
-
05-07-2019 - |
Вопрос
Для любых ссылок с определенным классом CSS я хотел бы контролировать, открываются ли ссылки в том же окне, новом окне или всплывающем окне (с помощью onclick), на основе выбора пользователя из группы радио кнопки - и затем сохранить этот выбор в куки (все с помощью jQuery). Кто-нибудь знает, как этого добиться?
Решение
Вероятно, именно так я и сделаю ... (вам понадобится плагин jQuery cookie ):
<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>
Изменить. Извините, что я не проверял это первым. У меня там было несколько опечаток, и я забыл установить cookie для начала (извините). Я проверил его, и теперь он работает с вашим HTML. Используйте только что отредактированный код выше. ; -) р>
Изменить 2 . Я добавил прямую ссылку на плагин cookie на тот случай, если вы по какой-то причине не используете нужную ссылку.
Изменить 3 . Лично я бы не установил переключатель, как отмечено в javascript ... вы можете получить доступ к тому же файлу cookie на вашем серверном языке, как мне кажется. Но я предоставил способ, который должен работать в моем недавно отредактированном коде.
Изменить 4: . Первоначальная настройка отмеченных ошибок переключателей была исправлена. Это должно действительно сработать в этот раз. Серьезно. о_0 р>