【问题标题】:JS Conflict Virtuemart JoomlaJS 冲突 Virtuemart Joomla
【发布时间】:2013-07-15 20:00:06
【问题描述】:

我在让 Virtuemart 正确运行时遇到问题,我很确定这是一个 js 冲突,但一直在努力解决这个问题。问题是在结帐下拉列表中选择国家/地区时不会填充州,这是一个链接:http://tinyurl.com/os7h9p2

我尝试关闭模块和插件,但没有成功。我可以更改模板,上述问题就消失了,因此我的模板中的某些内容导致了错误。我尝试从模板中删除 java 调用,但模板不会运行。

以前有人运行过这个吗?

提前致谢

【问题讨论】:

    标签: javascript joomla conflict virtuemart


    【解决方案1】:

    您有两个 JS 库:MooTools 和 jQuery,它们相互冲突。解决方案是在您的页面中包含以下 js 代码:

    <script type="text/javascript">
    $.noConflict();
    </script>
    

    阅读更多信息:

    http://davidwalsh.name/jquery-mootools

    http://api.jquery.com/jQuery.noConflict/

    【讨论】:

    【解决方案2】:

    我看到您导入了 2 个版本的 jquery。 1 由您的模板,另一个由 VirtueMart。这可能会导致冲突。 我不确定 VirtueMart 导入 jQuery 的位置,但我假设您的模板将在 index.php 文件中执行此操作。

    尝试找到导入 jQuery 的那一行,应该是这样的:

    $document->addScript(JURI::root() . "templates/hexicon_gamer/js/jquery/jquery.min.js");
    

    并替换为以下内容:

    <?php
      if(!JFactory::getApplication()->get('jquery')){
         JFactory::getApplication()->set('jquery',true);
         $doc = JFactory::getDocument();
         $doc->addScript($s5_directory_path.'/js/jquery/jquery.min.js');
      }
    ?>
    

    希望对你有帮助

    【讨论】:

    • @Ladder 现在的代码如下: RELEASE >= '3.0'){ JHtml::_('jquery.framework'); } $doc=JFactory::getDocument(); if($version->RELEASE addScript($s5_directory_path.'/js/jquery/jquery.min.js'); } ?>
    • 我把它改成了 get('jquery')){ JFactory::getApplication()->set('jquery',true); $document = JFactory::getDocument(); $document->addScript(JURI::root() . "templates/hexicon_gamer/js/jquery/jquery.min.js"); } ?> 我得到一个空白屏幕
    猜你喜欢
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多