【问题标题】:Hide submenu icons in jQuery UI Menu Widget在 jQuery UI 菜单小部件中隐藏子菜单图标
【发布时间】:2013-08-14 11:53:18
【问题描述】:

我正在尝试隐藏 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"

干杯 亚历克斯

【问题讨论】:

    标签: jquery css jquery-ui


    【解决方案1】:

    前面的答案是一个糟糕的黑客。 您可以使用适当的设置来删除图标,这将在图标通常所在的位置留下一个空白空间。 使用 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;}
    

    【讨论】:

      【解决方案2】:

      Working Fiddle using jquery solution

      基本上你可以使用 jquery remove 命令来做到这一点。

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

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

      【讨论】:

      • 嗨,这不起作用。当我查看生成的源代码时,它看起来像这样:&lt;ul id="menu" class="ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons" role="menu" tabindex="0" aria-activedescendant="ui-id-151"&gt;&lt;li class="ui-menu-item" role="presentation"&gt;&lt;a id="ui-id-151" class="ui-corner-all" href="#" aria-haspopup="true" tabindex="-1" role="menuitem"&gt;&lt;span class="ui-menu-icon ui-icon ui-icon-carat-1-e"&gt;&lt;/span&gt; ... 根本没有背景图像。 jQuery 添加 标记...毕竟,我可以创建一个“空”图标并告诉 jQuery 使用它。
      • @DaFunkyAlex 除非我误解了你的问题,否则它可以在这两个 js 小提琴中工作?你的意思是你想删除顶级菜单图标吗?
      • 嘿公鸡,我已经更新了我上面的问题,也许我想做什么更清楚了,谢谢
      • 好的,就是这样!谢谢。 $(document).ready(function(){ $(function() { $( "#menu" ).menu({ position: { my:'left top', at:'left bottom' } }); $('.ui-menu-icon.ui-icon.ui-icon-carat-1-e').remove(); }); });
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-30
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多