前提・実現したいこと
https://kodocode.net/design-css-selectlist/
こちらのサイトにある「カードタイプのセレクトボックスメニュー。」を実装したいのですが、
リンクの付け方が分かりません。
例)サンプルにある項目をクリックすると任意のページへ飛ぶ
HTML側でaタグを付けても全く動かないので、
JS側をいじる必要があるかと思いますが、見よう見まねでは動かなかったので
ご教示頂けると助かります。
どうぞよろしくお願いします。
該当のソースコード
JS
1$(document).ready(function(){ 2 3 var countOption = $('.old-select option').size(); 4 5 function openSelect(){ 6 var heightSelect = $('.new-select').height(); 7 var j=1; 8 $('.new-select .new-option').each(function(){ 9 $(this).addClass('reveal'); 10 $(this).css({ 11 'box-shadow':'0 1px 1px rgba(0,0,0,0.1)', 12 'left':'0', 13 'right':'0', 14 'top': j*(heightSelect+1)+'px' 15 }); 16 j++; 17 }); 18 } 19 20 function closeSelect(){ 21 var i=0; 22 $('.new-select .new-option').each(function(){ 23 $(this).removeClass('reveal'); 24 if(i<countOption-3){ 25 $(this).css('top',0); 26 $(this).css('box-shadow','none'); 27 } 28 else if(i===countOption-3){ 29 $(this).css('top','3px'); 30 } 31 else if(i===countOption-2){ 32 $(this).css({ 33 'top':'7px', 34 'left':'2px', 35 'right':'2px' 36 }); 37 } 38 else if(i===countOption-1){ 39 $(this).css({ 40 'top':'11px', 41 'left':'4px', 42 'right':'4px' 43 }); 44 } 45 i++; 46 }); 47 } 48 49 // Initialisation 50 if($('.old-select option[selected]').size() === 1){ 51 $('.selection p span').html($('.old-select option[selected]').html()); 52 } 53 else{ 54 $('.selection p span').html($('.old-select option:first-child').html()); 55 } 56 57 $('.old-select option').each(function(){ 58 newValue = $(this).val(); 59 newHTML = $(this).html(); 60 $('.new-select').append('<div class="new-option" data-value="'+newValue+'"><p>'+newHTML+'</p></div>'); 61 }); 62 63 var reverseIndex = countOption; 64 $('.new-select .new-option').each(function(){ 65 $(this).css('z-index',reverseIndex); 66 reverseIndex = reverseIndex-1; 67 }); 68 69 closeSelect(); 70 71 72 // Ouverture / Fermeture 73 $('.selection').click(function(){ 74 $(this).toggleClass('open'); 75 if($(this).hasClass('open')===true){openSelect();} 76 else{closeSelect();} 77 }); 78 79 80 // Selection 81 $('.new-option').click(function(){ 82 var newValue = $(this).data('value'); 83 84 // Selection New Select 85 $('.selection p span').html($(this).find('p').html()); 86 $('.selection').click(); 87 88 // Selection Old Select 89 $('.old-select option[selected]').removeAttr('selected'); 90 $('.old-select option[value="'+newValue+'"]').attr('selected',''); 91 92 // Visuellement l'option dans le old-select ne change pas 93 // mais la value selectionnée est bien pris en compte lors 94 // de l'envoi du formulaire. Test à l'appui. 95 96 }); 97});
試したこと
onChangeを入れてoption valueにURLを入力