我正在尝试使用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模板似乎限制了我能做的事情,但我想我在某个地方犯了一个简单的错误,我花了两个小时试图修复它无济于事。提前谢谢!
答案 0 :(得分:0)
您正在使用$
来引用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
项目无法转换为日期,则以下比较将产生不可预测的结果。