繁体   English   中英

脚本未加载到joomla模板中

[英]Script not loading in joomla template

我正在尝试使用jquery根据日期在我的joomla网站上显示内容。 这是正在工作的jsfiddle: http : //jsfiddle.net/2BHLd/968/

$(function() {
$(".DateDiv").each(function(index) {
    var sRange = $(this).find(".DateRange").html();
    var arrTemp = sRange.split(" to ");
    var dtFrom = new Date(arrTemp[0]);
    var dtTo = new Date(arrTemp[1]);
    var dtNow = new Date();
    if (dtNow >= dtFrom && dtNow <= dtTo)
        $(this).show();
    });
});

我正在使用Jumi将脚本和CSS插入我的页面中,并将html放入文章中。 CSS似乎已经很好地工作了,因为它已经隐藏了html,但是由于某种原因,即使当前日期在日期范围内,脚本也似乎没有显示文本。

http://askc.org/galacticos/index.php/events/upcoming-events

这个joomla模板似乎限制了我的工作能力,但是我认为我只是在某个地方犯了一个简单的错误,并且花了两个小时试图将其修复无济于事。 提前致谢!

您正在使用$来引用jQuery,而Joomla出于传统原因将其作为mootools保留。

只需将每次出现的$替换$ jQuery ,上面的代码将如下所示:

jQuery(function() {
jQuery(".DateDiv").each(function(index) {
    var sRange = jQuery(this).find(".DateRange").html();
    var arrTemp = sRange.split(" to ");
    var dtFrom = new Date(arrTemp[0]);
    var dtTo = new Date(arrTemp[1]);
    var dtNow = new Date();
    if (dtNow >= dtFrom && dtNow <= dtTo)
        jQuery(this).show();
    });
});

或者,如果您确实喜欢使用$前缀,则可以使用

$ = jQuery;

就在您的脚本之前; 但这可能会破坏依赖$作为mootools的其他功能,而这并不是Joomla的首选方式。

最后,您的代码不是很可靠,

var dtTo = new Date(arrTemp[1]);

如果sRange不包含至少两项,则将中断,并且如果无法将arrTemp项转换为日期,则以下比较将产生不可预测的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM