前提・実現したいこと
ここに質問の内容を詳しく書いてください。
長くなってしまったタイトルの通りですが、複数選択リストでCTRLキーを使わなくても複数選択できるようにした際、リストの表示位置を選択した場所に固定したいと考えています。
発生している問題・エラーメッセージ
下記のjQueryコードで、複数選択リストでCTRLキーを使わなくても複数選択できるようにはなったのですが、リストをスクロールして下の方のリストを選択すると、必ずリストの表示位置が先頭に戻ってしまいます。
下記のjQueryコードをコメントアウトすると、通常通りの動きになってCTRLキーが必要になりますが、選択してもリストの表示位置は変わりません。
該当のソースコード
HTML
1<select id="multi" class="form-control" name="dummy" multiple="multiple" > 2 <option value="1">1</option> 3 ... 4 <option value="100">100</option> 5</select>
jQuery
1$(document).on ('mousedown', "#multi option", (event) => { 2 event.preventDefault(); 3 4 $(event.currentTarget).toggleClass ('selected'); 5 $(event.currentTarget).prop ('selected', 6 !$(event.currentTarget).prop ('selected')); 7 return false; 8});
試したこと
「 $(event.currentTarget).focus();」として、イベント発生源となったオプションをフォーカスしてみましたが、変化はありませんでした。
CTRLキー無しで選択後に、元のリストの位置に留めておく方法をご存じな方がいらっしゃったら、ご協力いただけませんでしょうか。
補足情報(FW/ツールのバージョンなど)
jQuery 3.4.1
chrome 98.0.4758.102

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/24 21:42