javascript - 在 Joomla 菜单项上创建子行

标签 javascript jquery css menu joomla

在我的顶级菜单项中,我想为每个元素创建一个子行。我认为默认情况下不可能这样做,byt YooTheme 在他们的许多模板中都这样做了。

菜单输出看起来像这样

<div class="moduletable_menu">
<ul id="mainmenu" class="menu">
    <li class="active item1" id="current">
        <a href="URL_HIDDEN">
            <span>Services</span>
        </a>
    </li>
</ul>

这基本上输出了一个像这样的单行菜单项:

Services

我想做的是有一个像这样的菜单项:

Services
Service x, Service y, Service z

作为引用,请查看 YooTheme demo page 上的主菜单.

YooTheme 这样做的方式是使用两个竖线 (||) 作为换行符,因此在 Joomla 后端您键入“服务||服务 x、服务 y、服务 z”作为菜单标题,然后必须是一些花哨的 javascript,将这个标题分成两个范围,准备好使用 css 设置样式。

有谁知道编写此代码的简单方法吗?

请注意,我希望将此功能构建到自定义模板(即非 yootheme)中。

另请注意,我没有使用 MooTools,而是使用 Jquery。

最佳答案

我终于弄明白了,我想我会分享它,如果有人需要的话。

首先你需要创建一个template override对于 mod_mainmenu。

接下来,打开覆盖文件 (default.php) 并在最后一个 IF 之后插入这段代码:

// add title & sub span
if (isset($node->_children[0]) && isset($node->_children[0]->span[0])) {
    $title = $node->_children[0]->span[0];
    $split = explode('//', $title->data(), 2);
    if (count($split) == 2) {
        $span =& $node->_children[0]->span[0]->addChild('span', array('class' => 'title'));
        $span->setData(trim($split[0]));
        $span =& $node->_children[0]->span[0]->addChild('span', array('class' => 'sub'));
        $span->setData(trim($split[1]));
    }
}

现在您可以在菜单项标题字段中键入子行,您只需要将//作为分隔符。 示例:Lorem Ipsum//Dolor sit amet

输出的 html 如下所示:

<li class="parent item2">
<a href="YOURURL">
    <span>
        <span class="title">Lorem Ipsum</span>
        <span class="sub">Dolor sit amet</span>
    </span>
</a>

现在可以使用 css 设置样式。

快乐的日子! :)

提示!您可以选择任何您喜欢的分隔符,只需确保在 default.php 中更改它。 我使用了双斜线,因为它很容易输入。

关于javascript - 在 Joomla 菜单项上创建子行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2872443/

相关文章:

javascript - jquery获取子元素的attr

javascript - kendo grid发送json到 Controller

jQuery.data ('abc' ,'xyz' ) 不改变 data-abc

css - 实现 3 个图像精确大小的 CSS

css - 如何使div占用父容器的剩余高度

jquery - JQuery 的高飞切换问题

javascript - 如何在 asp.net mvc 中重置 session 超时

javascript - 是否可以触发 DOM 事件并使其在 DOM 树中下降?

javascript - bootstrap popover不显示隐藏的内容包装器

javascript - 是否可以更改表格的行位置