Javascript 如何更改Magento社区中的悬停列表显示/关闭
我有个小问题Javascript 如何更改Magento社区中的悬停列表显示/关闭,javascript,php,html,magento,navigation,Javascript,Php,Html,Magento,Navigation,我有个小问题 我可能认为代码是一种php语言,请参见以下内容: protected function _renderCategoryMenuItemHtml($category, $level = 0, $isLast = false, $isFirst = false, $isOutermost = false, $outermostItemClass = '', $childrenWrapClass = '', $noEventAttributes = false)
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;
}
protected function\u rendercategory menuitemhtml($category,$level=0,$isLast=false,$isFirst=false,
$isOutermost=false,$outermostItemClass='',$childrenWrapClass='',$noEventAttributes=false)
{
如果(!$category->getIsActive()){
返回“”;
}
$html=array();
//让所有的孩子
if(Mage::helper('catalog/category_flat')->isEnabled()){
$children=(数组)$category->getChildrenNodes();
$childrenCount=计数($childrenCount);
}否则{
$children=$category->getChildren();
$childrenCount=$children->count();
}
$hasChildren=($children&&$childrenCount);
//选择活动的子项
$activeChildren=array();
foreach($childrenas$child){
如果($child->getIsActive()){
$activeChildren[]=$child;
}
}
$activeChildrenCount=计数($activeChildrenCount);
$hasActiveChildrenCount=($activeChildrenCount>0);
//准备列表项html类
$classes=array();
$classes[]=“级别”。$level;
$classes[]='nav-'.$this->\u getItemPosition($level);
如果($this->isCategoryActive($category)){
$classes[]=“活动”;
}
$linkClass='';
if($isOutermost&&$outermostItemClass){
$classes[]=$outermostItemClass;
$linkClass='class=“”。$outermostItemClass.'”;
}
如果($isFirst){
$classes[]=“第一”;
}
如果($isLast){
$classes[]=“最后一个”;
}
如果($hasActiveChildren){
$classes[]=“父级”;
}
//准备列表项属性
$attributes=array();
如果(计数($classes)>0){
$attributes['class']=内爆(“”,$classes);
}
if($hasActiveChildren&!$noEventAttributes){
$attributes['onmouseover']='toggleMenu(this,1)';
$attributes['onmouseout']='toggleMenu(this,0)';
}
//使用属性组合列表项
$HTMLI='';
$html[]=$htmlLi;
$html[]='';
//给孩子
$htmlChildren='';
$j=0;
foreach($activechildrenas$child){
$htmlChildren.=$this->\u renderCategory菜单项HTML(
$child,
($level+1),
($j==$activeChildrenCount-1),
($j==0),
错误的
$outermostItemClass,
$childrenWrapClass,
$NOEVENTAT贡品
);
$j++;
}
如果(!empty($htmlChildren)){
if($childrenWrapClass){
$html[]='';
}
$html[]='”;
$html[]=$htmlChildren;
$html[]='
';
if($childrenWrapClass){
$html[]='';
}
}
$html[]='';
$html=内爆(“\n”,$html);
返回$html;
}
请帮忙
谢谢大家! 您可以用jQuery解决这个问题。 你所要做的就是在菜单中添加一个slideToggle函数
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>
是否希望链接与单击+/-符号的操作相同?Samtheman 999-完全正确!简单地说,问题是我找不到为此更改的代码。当使用Google开发者工具并使用它时,我能够更改它(HTML样式)。但是我在上面写的代码中哪里可以找到它呢?所有这些代码都是你自己写的吗?不,这是Magento Webshop的模板-使用Magento社区。你能找到这个函数的javascript吗?否则我帮不了你
<a href="javascript:void(0);" onclick="toggleMenu();">Fast Food</a>