我有一个特定的问题,我用本教程在concrete5 v8中构建了一个带有选项卡的组件:
只要登录到concrete5,只要没有登录,控制台就会出现以下错误,因此无法单击不同的选项卡:
未定义的ReferenceError: ccm_activateTabBar没有在HTMLDocument中定义。(简写:84)在j (jquery.js:2) at Object.fireWith as resolveWith at Function.ready (jquery.js:2) at HTMLDocument.J .J (jquery.js:2)
对第84行这一部分的错误引用:
<script type="text/javascript">$(function() { ccm_activateTabBar($('#ccm-tabs-1077221103'));});</script>它直接在ul元素之后出现,似乎是由concrete5生成的。
我根本找不到任何相关的东西,我想这与丢失的资产有关,这些资产只有在作为管理员登录时才会加载。
我目前只在未登录时加载以下资产:
$u = new User();
if(!$u->isLoggedIn()) {
$this->requireAsset('javascript', 'jquery');
$this->requireAsset('jquery/ui');
}也许已经有人使用了concrete5选项卡,可以帮助我解决这个错误。
发布于 2018-02-15 08:43:15
由Michele建议,您可能应该使用jquery/ui或引导组件来构建选项卡组件。
但是,如果您发现自己与我所处的情况相同,那么一个非常简单的修复方法就是从
混凝土/js/build/core/app/tpos.js
到主题文件夹,并在用户未登录时将其包括在内。
例如:
<?php
$u = new User();
if(!$u->isLoggedIn()) : ?>
<script src="<?php echo $view->getThemePath(); ?>/js/c5_tabs/tabs.js"></script>
<?php endif; ?>tabs.js是相当大的app.js的一部分,所以我只使用tabs.js,它只包含我所缺少的所需的函数。
此信息在MrKDilkington中的学分来自concrete5论坛
https://stackoverflow.com/questions/48789390
复制相似问题