モバイル デバイスでのナビゲーションに、optgroups を使用して select を使用しています。optgroup のラベルを使用してそれが属するセクションを示し、次にオプション自体を使用してサブセクションを指定します。
問題は、私が遭遇するほとんどすべてのブラウザーで、選択がフォーカスされていないときに optgroup が表示されないことです。次のjQueryを書くことでこれを回避しました:
$(".Nav-Interior-Mobile select option:selected").each( function() {
pageGroupLabel = $(this).parent('optgroup').attr('label');
pageItemLabel = $(this).text();
$(this).text(pageGroupLabel + " > " + pageItemLabel);
});
$('.Nav-Interior-Mobile select').focus( function() {
$(this).find('option:selected').text(pageItemLabel);
});
$('.Nav-Interior-Mobile select').blur( function() {
$(this).find('option:selected').text(pageGroupLabel + " > " + pageItemLabel);
});
これは、iOS 以外のすべてで機能するようです。iOS では、選択を変更するための UI は、フォーカスで使用される新しいテキストを反映しません。Apple の UI の上にある実際の選択が変更されていることがわかりますが、UI はまったく変更されていません。
これを行う方法を知っている人はいますか?
ここでは、ぼやけているときに機能しています。
フォーカスされているときに機能しない (UI には、「Web」と表示されているはずなのに、まだ「Branding > Web」と表示されている):
これは絶対にバグであるに違いありません.下にスクロールしてからリストに戻ると、テキストが変更されます.奇妙な.