我有一个wordpress网站,其中一项功能已开始运行。 在我的议程页面上:http://staging.chinahiking.cn/agenda/ 过去,当您点击这些标签时,即将到来的旅程将会改变。我只是意识到现在它已经停止工作了,我不确定为什么。有时甚至更奇怪的是,当我进行一次强制刷新时,并且当页面仍在加载并且我单击选项卡时,它再次起作用,但是当页面完全加载时,它停止了工作。这是JS函数:
<?php get_header();
$cur_month = date('n');
$month = array(1=>"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$agenda = get_agenda_by_month();
?>
var $=function(objectId){
if(document.getElementById&&document.getElementById(objectId)){
return document.getElementById(objectId)
}
else if(document.all&&document.all(objectId)){
return document.all(objectId)
}
else if(document.layers&&document.layers[objectId]){
return document.layers[objectId];
}
else{
return false;
}
};
function tabTurn(presObj, classon, showdiv){
var pObj = presObj.parentNode;
var items = pObj.getElementsByTagName('li');
for(var i=0; i<items.length; i++){
var n = i + 1;
var cntDiv = $('location_desc_' + n);
if(items[i] == presObj){
items[i].className=classon;
cntDiv.className = showdiv;
}
else{
items[i].className='off';
cntDiv.className = 'undis';
}
}
};
这是html:
<div class="monthes">
<div class="month_list">
<ul class="month">
<?php for($i=1; $i<=12; $i++){
if($i!=$cur_month)
echo "<li onclick=\"tabTurn(this, 'on', 'month_desc');\" class=\"off\">$month[$i]</li>";
else
echo "<li onclick=\"tabTurn(this, 'on', 'month_desc');\" class=\"on\">$month[$i]</li>";
}?>
</ul>
</div>
</div>
<?php
for($i=1; $i<=12; $i++):
if((isset($agenda[$i]))):
?>
<div id="location_desc_<?php echo $i;?>" class="month_desc <?php if($i!=$cur_month) echo "undis";?>">
有人知道为什么这突然停止工作吗?有时只有在页面仍在加载时才能工作,但在页面完全加载后才停止?
答案 0 :(得分:0)
我认为您没有正确使用jquery。您应该使用addClass
和removeClass
函数。
在您的站点上打开devtools,我可以通过运行以下命令来更改页面:
$('#location_desc_6').addClass("undis")
$('#location_desc_8').removeClass("undis")
请注意,如果要按ID选择元素,则选择器必须以#开头。
如果您确实想使用className = whatever
,则需要指定要在选择器返回的第一项上运行,例如:
$('#location_desc_6')[0].className = "undis"