我正在生成一个自定义帖子类型,该类型使用虚线图标,并允许用户选择一个与帖子关联的类型。用户可以从下拉列表中选择图标,并将其显示在右侧。
但我遇到了一个问题,因为javascript无法更改:before { content: \'\\f188\';}
因此我计划在元素上使用数据属性(数据图标),然后使用:before { content: attr(data-icon);}
.
这可以工作,并用必要的图标代码替换内容,但出于某种原因,会将其呈现为文本而不是图标。切换回仅在css中使用文本(而不是数据属性)。
HTML:
<select name="_mo_content_menu_ico" id="_mo_content_menu_ico">
<option value="\\f118">Education</option>
<option value="\\f130">Status</option>...
...<option value="\\f161">Gallery</option>
</select>
<span id="content_icon" data-icon="\\f118"></span>
CSS:#content_icon:before {
content: attr(data-icon);
font: 400 20px/1 dashicons!important;
speak: none;
color: #333;
padding: 8px 0;
height: 36px;
width: 20px;
display: inline-block;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-moz-transition: all .1s ease-in-out;
-webkit-transition: all .1s ease-in-out;
transition: all .1s ease-in-out;
}
JS公司:var $j = jQuery;
$j(document).ready(function(){
$j(\'#_mo_content_menu_ico\').change(function(){
var icon = $j(\'#_mo_content_menu_ico\').val();
$j(\'#content_icon\').attr(\'data-icon\',icon);
});
});
你知道怎么绕过这个吗?或者为什么会这样?谢谢