目前我隐藏和显示这样的 div 的内容:
var header = null;
var content = null;
var mainHolder = null;
var expandCollapseBtn = null;
var heightValue = 0;
header = document.getElementById("header");
content = document.getElementById("content");
mainHolder = document.getElementById("mainHolder");
expandCollapseBtn = header.getElementsByTagName('img')[0];
heightValue = mainHolder.offsetHeight;
header.addEventListener('click', handleClick, false);
mainHolder.addEventListener('webkitTransitionEnd',transitionEndHandler,false);
function handleClick() {
if(expandCollapseBtn.src.search('collapse') !=-1)
{
mainHolder.style.height = "26px";
content.style.display = "none";
}
else
{
mainHolder.style.height = heightValue + "px";
}
}
function transitionEndHandler() {
if(expandCollapseBtn.src.search('collapse') !=-1)
{
expandCollapseBtn.src = "expand1.png";
}
else{
expandCollapseBtn.src = "collapse1.png";
content.style.display = "block";
}
}
如果内容是静态的,这很好,但我试图像这样动态地填充我的 div。
这是从 iphone 应用程序调用的,并用字符串填充 div。
var method;
function myFunc(str)
{
method = str;
alert(method);
document.getElementById('method').innerHTML = method;
}
我将字符串全局存储在变量方法中。我现在遇到的问题是,当我尝试扩展刚刚折叠的 div 时,那里什么都没有。有什么方法可以在再次扩展之前使用存储在 var 中的信息重新填充 div 吗?我试过像在函数中那样插入它,但它不起作用。
有没有人有任何想法?
复制:
这是jsfiddle。jsfiddle.net/6a9B3 如果您在此处输入文本
它会正常工作。我不确定如何在这个 jsfiddle 中只用字符串调用 myfunc 一次,但如果你能弄清楚如何做到这一点,你会看到它第一次加载正常,但是当你折叠该部分并尝试重新打开时它,它不会工作。如果解决此问题的唯一方法是使用 jquery,我不介意沿着这条路线走。