2012-12-05 78 views
1

我想添加一个小的innerhtml函数到Magento的顶部链接。我隐藏了文本(“我的帐户”,“我的愿望清单”,“我的购物车”,“登录/注册”)并给他们发送图像,而不是默认的文本链接。将innerhtml添加到顶部链接

看到下面的图片。

innerhtml-on-toplink-hover

我想要做的是,当你将鼠标悬停在上面的链接按钮中的一个,你在一个div某处拿到顶部链接的适当的标签/名称的按钮旁边。因此,如果您将鼠标悬停在“我的购物车”链接/按钮上,即可在相应的div中看到文字“我的购物车”。

技术问题是不是 innerhtml部分,因为我知道innerhtml是如何工作的。我的问题是:我在哪里以及如何实现内部代码片段,以便它能够正确地适用于所有4个toplinks?

(基本上,它其实并不重要,这些文本链接被做成图片链接,但是这是这样你就不会问自己:“他为什么要这么做?”)。


我已经试过是将部件添加到

的MyStore \程序\设计\前台\基地\ DEFAULT \模板\网页\模板\ links.phtml

或(永远都)

mystore \ app \ design \ frontend \ base \ default \ template \ page \ template \ linksblock.phtml。 我用下面的代码片段:

<script type="text/javascript"> function changeDescription(content) { document.getElementById('description').innerHTML = content; } </script>

<a href="#" onmouseover="changeDescription('<?php echo $this->getTitle() ?>')"> <!-- I also tried getLabel() instead of getTitle() -->

<div id="description"> lorem ipsum </div>

并试图把在不同的地方在这些文件中(另发),但无论我把代码,它搅乱了<ul>列表及其列表项。


p.s.我知道这些'按钮'很丑。这只是暂时)


编辑:

我最好的尝试(在其他不同的东西我),很可能是把它放在links.phtml这样的:

<script type="text/javascript"> function changeDescription(content) { document.getElementById('description').innerHTML = content; } </script> 
<div id="description"> lorem ipsum </div> 
<?php $_links = $this->getLinks(); ?> 
<?php if(count($_links)>0): ?> 
<ul class="links"<?php if($this->getName()): ?> id="<?php echo $this->getName() ?>"<?php endif;?>> 
    <?php foreach($_links as $_link): ?> 
    <a href="#" title="<?php echo htmlspecialchars($this->getLabel()); ?>" onmouseover="changeDescription(this.title)"> 
     <?php if ($_link instanceof Mage_Core_Block_Abstract):?> 
      <?php echo $_link->toHtml() ?> 
     <?php else: ?> 
      <li<?php if($_link->getIsFirst()||$_link->getIsLast()): ?> class="<?php if($_link->getIsFirst()): ?>first<?php endif; ?><?php if($_link->getIsLast()): ?> last<?php endif; ?>"<?php endif; ?> <?php echo $_link->getLiParams() ?>><?php echo $_link->getBeforeText() ?><a href="<?php echo $_link->getUrl() ?>" title="<?php echo $_link->getTitle() ?>" <?php echo $_link->getAParams() ?>><?php echo $_link->getLabel() ?></a><?php echo $_link->getAfterText() ?></li> 
     <?php endif;?> 
     </a> 
    <?php endforeach; ?> 
</ul> 
<?php endif; ?> 

但无济于事。无论我做什么,它都会破坏<ul>内容的结构。

回答

0

为什么不干脆:

<a href="#" 
    title="<?php echo htmlspecialchars($this->getTitle()); ?>" 
    onmouseover="changeDescription(this.title)"> 
...</a> 

注意,你已经得到了contentinhoud之间的不匹配您的changeDescsription功能。

+0

谢谢,我会尝试。 – poepje

+0

哦,是的,'inhoud'是荷兰语'内容',我忘了在这里改变它,但是我没有在实际使用的代码中的不匹配;)我将编辑问题 – poepje

+1

到目前为止仍然没有运气,我只是不能找出把代码片放在哪里。查看我的问题中的更新。 – poepje