1

Magento のトップ リンクに小さな innerhtml 関数を追加しようとしています。デフォルトのテキスト リンクの代わりに、テキスト (「マイ アカウント」、「マイ ウィッシュリスト」、「マイ カート」、「ログイン/登録」) を非表示にして、画像を表示しました。

下の画像を参照してください。

innerhtml-on-toplink-hover

私がやろうとしているのは、トップリンクボタンの1つにカーソルを合わせると、ボタンの隣のdivのどこかにあるそのトップリンクの適切なラベル/名前を取得することです. したがって、「マイ カート」リンク/ボタンにカーソルを合わせると、対応する div に「マイ カート」というテキストが表示されます。

innerhtml の仕組みは知っているので、技術的な問題はinnerhtml の部分ではありません。私の質問は: 4 つのトップリンクすべてで正しく動作するように、innerhtml コードの一部をどこにどのように実装すればよいですか?

(基本的に、これらのテキスト リンクを画像リンクにすることは問題ではありませんが、これは、「なぜ彼はそうしたいのか?」と自問しないようにするためです。)


私が試したのは、パーツを追加することです

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>

そして、それらのファイルの別の場所に(別々に)入れようとしましたが、コードをどこに置いても、<ul>リストとそのリスト項目がめちゃくちゃになります。


psこれらの「ボタン」は醜いです、私は知っています。一時的なものです(;_;)


編集:

私の最善の試みは(私が他のさまざまなことの中で)おそらく、次のように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>ます。

4

1 に答える 1

0

なぜ単純ではないのですか:

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

changeDescription 関数contentとの間に不一致があることに注意してください。inhoud

于 2012-12-05T14:31:04.547 に答える