我正在创建一个新的Joomla模板,并且遇到链接到外部.js文件的问题。
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/main.css">
<link rel="stylesheet" type="text/css" href="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/css/FLpresentation.css">
<script src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/js/jquery-2.1.4.js"></script>
<script src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/js/FLpresentation.js"></script>
<script src="<?php echo $this->baseurl ?>/templates/<?php echo $this->template; ?>/js/FLajax.js"></script>
以上代码包含在head标记中,当我将模板安装到joomla中时,CSS工作正常。一切看起来应该如何,但我的所有Jquery和Javascript代码都不起作用。唯一的代码是在index.php文件的标记内。
谁能告诉我我做错了什么?我已经在templateDetails.xml中定义了文件和文件夹,除了js以外的所有内容都工作正常,尽管我使用完全相同的方法来链接CSS。帮助我,我很困惑。
答案 0 :(得分:1)
100%JS冲突。只需检查控制台!你包括了Jquery库,但是Joomla已经有了Jquery。检查控制台是否有错误,检查输出HTML中是否有超过1次的Jquery并迁移代码。
也包装你的代码:
(function($) {
$(document).ready(function(){
// START HERE FOR ON_DOCUMENT_READY
alert(1);
});
})(jQuery);
这为您的Jquery代码保留$。
答案 1 :(得分:0)
使用JHtml :: script方法,如下例所示:
$url = Juri::base();// pick the url for my joomla website
JHtml::script($url . 'components/com_revista/prefixfree.min.js');//here i'm using one file in my server, but you could put the url for your script like
"JHtml::script('http://urlforscriptsource/script.js');"
下面的代码在你的joomla扩展上添加了JQuery框架:
JHtml::_('jquery.framework');
JHtml::_('jquery.ui');
JHtml::_('jquery.ui', array('sortable'))
Ps:最好在你的JQuery代码中使用JQuery()而不是$(),这样可以避免冲突!