隐藏jQuery UI菜单小组件中的子菜单图标

时间:2013-08-14 11:53:19

标签: jquery css jquery-ui

我正在尝试隐藏jquery ui菜单小部件的子菜单图标(默认值为 ui-icon-carat-1-e )。

$(document).ready(function(){
    $(function() {
        $( "#menu" ).menu({
            icons: { 
                submenu: false
            }
        });
    });
});

我想解决方案非常简单,但我无法理解: - (

感谢您的帮助,伙计们。

编辑:这是我的HTML代码:

<ul id="menu" style="z-index:1">
    <li><a href="#"><span class="ui-icon ui-icon-info" style="margin: 3px 0 0 4px;"></span>Information </a>
        <ul>
            <li><a href="?site=something"><span class="ui-icon ui-icon-star" style="margin: 2px 0 0 4px;"></span>Something</a></li>
            <li>...</li>
...
        </ul>
    </ul>

这是jquery完成滚刀时的代码:

<ul id="menu" class="ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons" style="z-index:1" role="menu" tabindex="0" aria-activedescendant="ui-id-152">
    <li class="ui-menu-item" role="presentation">
        <a id="ui-id-152" class="ui-corner-all" href="#" aria-haspopup="true" tabindex="-1" role="menuitem">
            <span class="ui-menu-icon ui-icon ui-icon-carat-1-e"></span>
            <span class="ui-icon ui-icon-info" style="margin: 3px 0 0 4px;"></span>
                Information 
        </a>
        <ul class="ui-menu ui-widget ui-widget-content ui-corner-all" style="display: none; top: 31px; left: 20px;" role="menu" aria-expanded="false" aria-hidden="true">
            <li class="ui-menu-item" role="presentation"> … </li>
            <li class="ui-menu-item" role="presentation"> … </li>
            <li class="ui-menu-item" role="presentation"> … </li>
            <li class="ui-menu-item" role="presentation"> … </li>

我想删除这个烦人的跨度标签 span class =“ui-menu-icon ui-icon ui-icon-carat-1-e”

干杯 亚历

2 个答案:

答案 0 :(得分:4)

之前的答案是糟糕的黑客攻击。 您可以使用正确的设置删除图标,这将留下图标通常会出现的空白区域。 使用CSS删除图标的额外间距。你可以同时做这两件事,或者只做CSS部分。

Javascript菜单初始化(可选更改 - css将完全隐藏):

$("#mymenu").menu({
    icons: {submenu: 'ui-icon-blank'}
});

CSS更改:

#mymenu .ui-menu-icon{display: none;}
#mymenu.ui-menu .ui-menu-item{padding: 3px 3px 3px 3px;}

答案 1 :(得分:3)

Working Fiddle using jquery solution

基本上,您可以使用jquery remove命令执行此操作。

JS(初始化小部件后运行)

$('.ui-menu-icon.ui-icon.ui-icon-carat-1-e').remove();