伙计们。
我一直在寻找解决方案,但我得到的只是我需要的一些片段。我正在尝试在页脚上显示一些额外的内容。单击页脚链接时将显示此内容。我可以使用一些代码轻松做到这一点,例如:
<!-- TRIGGER -->
<li><a href="javascript:void(0);" onclick="return abreInfo();">Sobre</a></li>
<!-- CONTAINER -->
<div id="infoShow">
<section> ... </section>
</div>
<!-- SCRIPT -->
<script type="text/javascript">
function abreInfo(id) {
jQuery("#infoShow").slideDown('fast', function () {
jQuery('html,body').animate({ scrollTop: jQuery("#infoShow").offset().top -54 }, 200);
});
}
</script>
虽然这实际上不是我所需要的。因为该部分内的内容需要是一个 CMS 静态块,并且会有多个静态块要加载,根据用户单击的页脚链接(我试图做的是对页脚链接进行 AJAX 调用,例如"关于"、"付款方式"、"交付信息"等)。不幸的是,知识使我有了这种脚本:
function abreInfo(id) {
jQuery("#infoShow").slideDown('fast', function () {
jQuery('html,body').animate({ scrollTop: jQuery("#infoShow").offset().top -54 }, 200);
jQuery("#infoShow>section").load("<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('" + id + "')->toHtml() ?>", function () {
});
});
}
但是,正如你所看到的,我在javascript中使用了一个php echo,禁用了所有的脚本。我无法确定的是一种通过单击"a"元素并将其打印在javascript函数上来获取CMS静态块ID的方法。
在网上查看,我发现了一个可能有用的代码,但我不太确定如何处理它:
$block_identifier = $_GET['id'];
$block = Mage::app()->getLayout()->createBlock('cms/block')->setBlockId($block_identifier);
任何帮助将不胜感激。
您必须将静态块加载到div 中,该块将被隐藏,然后单击页脚链接后,您必须显示div
。 例如。<div id="hiddenBlock" style="display:hidden">
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('static_block_id')->toHtml() ?>
</div>
<div>
<a href="#" onclick="showBlock()">show block</a>
</div>
和 js 函数
function showBlock() {
jQuery('#hiddenBlock').show();
}
类似的东西,这是最简单的解决方案,没有Ajax加载