我有一个使用标签界面设置的页面。单击选项卡时,将调用以下函数:
function DisplayContent(tabname, newobject) //for displaying the content in the tabs
{
document.getElementById("display").innerHTML = document.getElementById(tabname).innerHTML; //writing from a hidden div on the same page
if(!newobject) newobject=document.getElementById('tab'+tabname);
if(lastobject) lastobject.className='';
newobject.className='selected';
lastobject=newobject;
}
我在按钮内使用以下功能以切换页面上的某些元素:
onclick="$('.duedate').toggle();"
如果我根本没有点击按钮,一切都很好。但是,如果我单击按钮以显示隐藏的内容,然后重新隐藏内容,则在更改选项卡时会出现问题 - 当我再次返回该选项卡时,内容会返回显示。为什么这些元素再次出现,即使我没有点击按钮?希望我有所了解,这是一个难以描述的问题。
答案 0 :(得分:3)
因为您要从dom中删除隐藏的元素并将其替换为新的HTML。如果要保留样式,还必须保留元素。使用.show()
和.hide()
显示您的div,而不是复制html。
function DisplayContent(tabname, newobject) //for displaying the content in the tabs
{
$("tabContent").hide(); // hide all the tab content divs
$("#" + tabname).show(); // show just the current tab's content div
if(!newobject) newobject=document.getElementById('tab'+tabname);
if(lastobject) lastobject.className='';
newobject.className='selected';
lastobject=newobject;
}
为了实现这一点,请为您的所有内容div提供一个“tabContent”类,并将它们放在<div id="display"></div>
之后。