将 innerhtml 添加到顶部链接

Posted

技术标签:

【中文标题】将 innerhtml 添加到顶部链接【英文标题】:Add innerhtml to top links 【发布时间】:2012-11-23 09:45:12 【问题描述】:

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

见下图。

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

技术问题不是innerhtml 部分,因为我知道innerhtml 是如何工作的。我的问题是:我在哪里以及如何实现 innerhtml 代码,以便它对所有 4 个***链接都正常工作?

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


我尝试将这些部分添加到

mystore\app\design\frontend\base\default\template\page\template\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>

并尝试在这些文件中的不同位置(单独)放置,但无论我放置代码,它都会弄乱&lt;ul&gt; 列表及其列表项。


附言我知道,这些“按钮”很丑陋。这只是暂时的;)


编辑:

我最好的尝试(在其他不同的事情中)可能是把它放在 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; ?>

但无济于事。无论我做什么,都会弄乱&lt;ul&gt; 的内容结构。

【问题讨论】:

【参考方案1】:

为什么不简单:

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

请注意,您的 changeDescription 函数中的 contentinhoud 不匹配。

【讨论】:

哦,是的,'inhoud' 是荷兰语的'内容',我忘了在这里更改,但我实际使用的代码没有不匹配;)我会编辑问题 到目前为止仍然没有运气,我只是无法弄清楚将代码片段放在哪里。请参阅我的问题中的更新。

以上是关于将 innerhtml 添加到顶部链接的主要内容,如果未能解决你的问题,请参考以下文章

添加 UISearchController 后 UITableView 可以滚动到顶部太远

添加新数据时,Tableview 会滚动到顶部。无限滚动

单击触发 JavaScript 的链接时,如何阻止网页滚动到顶部?

DOM 元素的 InnerHTML 属性已更改,但未呈现

添加滚动到顶部按钮(Ionic 2 | Typescript)

添加滚动到顶部按钮(Ionic 2 | Typescript)