将innerhtml添加到顶部链接

时间:2012-12-05 14:25:54

标签: php html magento innerhtml magento-1.7

我正在尝试将一个小的innerhtml函数添加到Magento的顶部链接。我没有隐藏文本链接,而是隐藏了文本(“我的帐户”,“我的愿望清单”,“我的购物车”,“登录/注册”)并为其提供了图像。

见下图。

innerhtml-on-toplink-hover

我要做的是,当您将鼠标悬停在其中一个顶部链接按钮上时,您会在按钮旁边的div中的某个位置获得该顶部链接的相应标签/名称。因此,如果您将鼠标悬停在“我的购物车”链接/按钮上,您会在相应的div中看到“我的购物车”文字。

技术问题是不是 innerhtml部分,因为我知道innerhtml是如何工作的。我的问题是:我在哪里以及如何实现innerhtml代码的各个部分以使其适用于所有4个顶部链接?

(基本上,将这些文字链接制作成图像链接并不重要,但这样你就不会问自己“他为什么要这样做?”。)


我尝试过将部件添加到

的MyStore \应用\设计\前端\基\默认\模板\页面\模板\ links.phtml

或(从不两者)

的MyStore \应用\设计\前端\基\默认\模板\页面\模板\ 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>

内容的结构

1 个答案:

答案 0 :(得分:0)

为什么不简单:

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

请注意,您在changeDescsription函数中的contentinhoud之间存在不匹配。