【发布时间】:2022-01-11 12:49:58
【问题描述】:
我有一个 jquery 脚本,它首先隐藏所有选择选项:
$('option[data-start="1"]').hide();
然后根据用户选择的其他输入显示选项。
$('option[data-variable1="' + variable1x + '"][data-variable2="' + variable2x + '"]').show();
一切都很好,但在 Safari 上 .hide() 不起作用。 我知道解决方法:
$('option[data-start="1"]').prop('disabled', true);
$('option[data-variable1="' + variable1x + '"][data-variable2="' + variable2x + '"]').prop('disabled', false);
但这只会关闭一些选项。我有几十个选项,所以有一长串不活动的选项。 我尝试隐藏非活动选项,但 Safari 可能会忽略此代码:
select option[disabled="disabled"]{display:none !important;width:0;height:0;visibility: hidden;opacity:0;}
select option:disabled { display:none !important;height:0;width:0;visibility: hidden;opacity:0;}
您能帮我解决一些 Safari 的问题吗?
【问题讨论】:
-
我想任何对原生
<select>的跨平台定制都将是一场艰苦的战斗。从任务中退后一步,看看目标,你最好的选择可能是不再使用原生的<select>,而是使用一个构建自定义类选择界面的插件。对于 jQuery,流行的选择包括 Select2 和 Chosen。
标签: javascript jquery css safari