如何改变悬停列表显示/关闭Magento社区
How to change onhover list show/close in Magento Community
我有一个小问题。
左侧导航菜单切换<——网站链接-参见左侧分类导航。
正如你在上面的链接中看到的,这是一个带有切换选项的左侧导航。单击+号时,子菜单展开,+号变为-号,单击-号时,子菜单恢复正常。
左边的标题是一个链接,当点击左边的标题时,它会直接跳转到快餐类别。但是,我希望标题具有与+/-符号相同的选项-并删除链接类。
HTML代码为:
<div class="block block-side-nav-container">
<div class="block-title">
<strong><span><?php echo $this->__('Categories') ?></span></strong>
</div>
<div class="block-content">
<div class="side-nav">
<ul id="category-treeview" class="treeview-side treeview">
<?php foreach ($this->getStoreCategories() as $_category): ?>
<?php echo $this->drawItem($_category) ?>
<?php endforeach ?>
</ul>
</div>
</div>
我可能认为代码是php语言,请参阅下面:
protected function _renderCategoryMenuItemHtml($category, $level = 0, $isLast = false, $isFirst = false,
$isOutermost = false, $outermostItemClass = '', $childrenWrapClass = '', $noEventAttributes = false)
{
if (!$category->getIsActive()) {
return '';
}
$html = array();
// get all children
if (Mage::helper('catalog/category_flat')->isEnabled()) {
$children = (array)$category->getChildrenNodes();
$childrenCount = count($children);
} else {
$children = $category->getChildren();
$childrenCount = $children->count();
}
$hasChildren = ($children && $childrenCount);
// select active children
$activeChildren = array();
foreach ($children as $child) {
if ($child->getIsActive()) {
$activeChildren[] = $child;
}
}
$activeChildrenCount = count($activeChildren);
$hasActiveChildren = ($activeChildrenCount > 0);
// prepare list item html classes
$classes = array();
$classes[] = 'level' . $level;
$classes[] = 'nav-' . $this->_getItemPosition($level);
if ($this->isCategoryActive($category)) {
$classes[] = 'active';
}
$linkClass = '';
if ($isOutermost && $outermostItemClass) {
$classes[] = $outermostItemClass;
$linkClass = ' class="'.$outermostItemClass.'"';
}
if ($isFirst) {
$classes[] = 'first';
}
if ($isLast) {
$classes[] = 'last';
}
if ($hasActiveChildren) {
$classes[] = 'parent';
}
// prepare list item attributes
$attributes = array();
if (count($classes) > 0) {
$attributes['class'] = implode(' ', $classes);
}
if ($hasActiveChildren && !$noEventAttributes) {
$attributes['onmouseover'] = 'toggleMenu(this,1)';
$attributes['onmouseout'] = 'toggleMenu(this,0)';
}
// assemble list item with attributes
$htmlLi = '<li';
foreach ($attributes as $attrName => $attrValue) {
$htmlLi .= ' ' . $attrName . '="' . str_replace('"', ''"', $attrValue) . '"';
}
$htmlLi .= '>';
$html[] = $htmlLi;
$html[] = '<a href="'.$this->getCategoryUrl($category).'"'.$linkClass.'>';
$html[] = '<span>' . $this->escapeHtml($category->getName()) . '</span>';
$html[] = '</a>';
// render children
$htmlChildren = '';
$j = 0;
foreach ($activeChildren as $child) {
$htmlChildren .= $this->_renderCategoryMenuItemHtml(
$child,
($level + 1),
($j == $activeChildrenCount - 1),
($j == 0),
false,
$outermostItemClass,
$childrenWrapClass,
$noEventAttributes
);
$j++;
}
if (!empty($htmlChildren)) {
if ($childrenWrapClass) {
$html[] = '<div class="' . $childrenWrapClass . '">';
}
$html[] = '<ul class="level' . $level . '">';
$html[] = $htmlChildren;
$html[] = '</ul>';
if ($childrenWrapClass) {
$html[] = '</div>';
}
}
$html[] = '</li>';
$html = implode("'n", $html);
return $html;
}
请帮助。
谢谢!
你可以用jQuery解决这个问题。你所要做的就是给你的菜单标题添加一个slideToggle函数。
- 首先要确保在你的网站中包含jQuery
- 创建一个js文件的小js修复(我通常叫它customjs.js),包括从你的网站的页脚
添加以下jQuery
$(".block-title").click(函数(){$ (" .block-content ") .slideToggle ();//上下滑动返回错误;//阻止链接工作})
查看jsfiddle.net/pTg68/17/查看示例
Cheerz
首先找到函数的名称,我想象它看起来像这样:
var menu = "closed";
function toggleMenu(){
if(menu = "closed"){
openTree();
}else{
closeTree();
}
}
function openTree(){
//code to open the menu
};
function closeTree(){
//code to close the menu
};
你所要做的就是从
更改每个类别的链接<a href="fastfood.html">Fast Food</a>
<a href="javascript:void(0);" onclick="toggleMenu();">Fast Food</a>
相关文章:
- 引导程序下拉列表显示不正确
- 使用2个下拉列表显示/隐藏分区
- 条件过滤列表显示在angularjs中
- 引导程序在单击另一个下拉列表时关闭下拉列表
- 如果字符串位于iframe之后,则不会使用引导程序列表显示
- 触发 html5 输入数据列表下拉列表显示
- AngularJS 10 $digest() 迭代在列表显示时达到
- 使用下拉列表显示/隐藏
- 我有一个列表显示 1、2、3 个数字,我可以将它们转换为乌尔都语吗?
- 使用 Javascript (CodeCademy) 制作更好的联系人列表显示
- 如何使用 JavaScript 打开一个下拉列表并关闭另一个下拉列表
- 通过选择一个下拉列表显示两个不同的值
- 尝试根据单击复选框列表显示/隐藏输入
- 将 JavaScript 对象列表显示为 HTML 列表项
- 将列表显示为二叉树
- 将(非/有序)HTML列表显示为自顶向下的树状结构的最佳方式是什么?
- JavaScript链式下拉列表显示/隐藏一个Div
- 为什么我的角列表显示不出来
- 如何继续显示关闭图标时,悬停在它
- 如何改变悬停列表显示/关闭Magento社区